私は良い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行があります。
クエリIdeaは、すべての製品を選択します。ここで、stock_quanity> 3、ここで、は写真であり、ここで、はallegro
テーブル内の製品IDではありません。
現在、クエリには約10秒かかります。どうすれば最適化できるのかわかりません。
@解決済み
allegro.product_idとallegro.attributesにインデックスを追加しましたが、クエリにかかる時間は0.5秒未満です。助けてくれてありがとう