我很糟糕,在做好MySQL查询。我创建了这一个:MySQL - 如何优化我的查询
SELECT SQL_CALC_FOUND_ROWS
`products_stock`.`products_id`,
`products_stock`.`products_stock_attributes`,
`products_stock`.`products_stock_quantity`,
`products`.`manufacturers_id`,
`products_description`.`products_name`
FROM `products_stock`
LEFT JOIN `products`
ON `products_stock`.`products_id` = `products`.`products_id`
LEFT JOIN `products_description`
ON `products_stock`.`products_id` = `products_description`.`products_id`
LEFT JOIN `products_to_categories`
ON `products_stock`.`products_id` = `products_to_categories`.`products_id`
WHERE `products_stock`.`products_stock_quantity` >=3
AND `products`.`products_status` = 1
AND ISNULL(`products`.`products_image`) = false
AND `products`.`products_image` != ""
AND EXISTS(
select * from `allegro`
where `products_stock`.`products_id` = `allegro`.`product_id`
and `allegro`.`attributes` = `products_stock`.`products_stock_attributes`
) = false
products
表有大约17K行, allegro
表有行约3K。
查询想法是选择所有产品,其中stock_quanity> 3,其中是照片,并且allegro
表中没有产品ID。
现在查询大约需要10秒。我不知道如何优化它。
@SOLVED
我已经添加索引allegro.product_id和allegro.attributes现在查询tooks不到半秒。感谢所有的帮助
你有没有在数据库中的任何索引? – Timst 2012-07-11 09:15:02
请发布EXPLAIN返回的内容以及所有表模式。 – Pentium10 2012-07-11 09:16:46
您有解释查询结果:http://scr.hu/0an/q09nm – PiKey 2012-07-11 09:22:26