Mysql Slow Query Optimization -


i have shopping cart continually logs slow queries one...

# query_time: 4  lock_time: 0  rows_sent: 50  rows_examined: 454403     select sql_calc_found_rows products.*,                             descr1.product                          product,                             min(prices.price)                       price,                             group_concat(if(products_categories.link_type = 'm',                             concat(products_categories.category_id,                             'm'), products_categories.category_id))                             category_ids,                             cscart_seo_names.name                   seo_name    cscart_products products         left join cscart_product_descriptions descr1           on descr1.product_id = products.product_id              , descr1.lang_code = 'en'         left join cscart_product_prices prices           on prices.product_id = products.product_id              , prices.lower_limit = 1         inner join cscart_products_categories products_categories           on products_categories.product_id = products.product_id         inner join cscart_categories           on cscart_categories.category_id = products_categories.category_id              , ( cscart_categories.usergroup_ids = ''                     or find_in_set(0, cscart_categories.usergroup_ids)                     or find_in_set(1, cscart_categories.usergroup_ids) )              , cscart_categories.status in ( 'a', 'h' )         left join cscart_seo_names           on cscart_seo_names.object_id = products.product_id              , cscart_seo_names.type = 'p'              , cscart_seo_names.dispatch = ''              , cscart_seo_names.lang_code = 'en'   1         , products.company_id = 0         , ( products.usergroup_ids = ''                or find_in_set(0, products.usergroup_ids)                or find_in_set(1, products.usergroup_ids) )         , products.status in ( 'a' )         , prices.usergroup_id in ( 0, 0, 1 )  group  products.product_id  order  descr1.product asc  limit  1300, 50;  

i can't seem cart company on how speed query up. maybe need add more indexes? not sure , love point me in t right direction solving problem.

thanks,

chris edwards

i see lot of issues query causing slowness...

first of all, anywhere using 'find_in_set', try using in instead. removing 'or' in conditions, indexes can used:

cscart_categories.usergroup_ids = '' or find_in_set(0, cscart_categories.usergroup_ids) or find_in_set(1, cscart_categories.usergroup_ids) 

becomes:

cscart_categories.usergroup_ids in ('', '0', '1') 

other that, make sure every column being used in join, group clause, clause, or ordering indexed.

another suggestion remove 'group_concat' , select information separately in query.


Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -