ホームページ >バックエンド開発 >PHPチュートリアル >MySQL クエリには時間がかかりすぎます。見てください。

MySQL クエリには時間がかかりすぎます。見てください。

WBOY
WBOYオリジナル
2016-06-13 12:22:421245ブラウズ

MySQL クエリには時間がかかりすぎます。見てください。
SELECT a.`sku`,a.`stock_id`,a.`currency`,a.`account`,a.`charge`,a.`sale_country` 、 b.`stock_description`,c.`img_name`,d.`price`,d.`purchase_price`,d.`price`,d.`order_id`
FROM `Sku_Comparison` a
LEFT JOIN ` item_Codes ` b ON a.`stock_id`=b.`stock_id`
LEFT JOIN (SELECT * FROM `Product_Img` GROUP BY `item_code`) as c ON a.`stock_id`=c.`item_code`
LEFT JOIN (SELECT * FROM (SELECT * FROM `Sale_Order_de` order by `id` desc ) t GROUP BY t.`sku`) d ON d.`sku`=a.`sku`
ORDER BY a.` id ` DESC

クエリ時間は約 10 秒かかります。テーブル内のデータの最大数は、数値を除いて、varchar
-- ----解決策のアイデア----------

SQL ステートメントを最適化し、サブクエリを減らす必要があります (3 つ使用しました)一時テーブル)、インデックスはほとんど使用されません。接続クエリでは、ON a.`stock_id`=c.`item_code` および ON d.`sku`=a.`sku` これを試してください: 返されたデータが必要なデータであるかどうかはわかりません


-----解決策のアイデア--------- -- -----------

<br />SELECT a.`sku`,a.`stock_id`,a.`currency`,a.`account`,a.`charge`,a.`sale_country`,b.`stock_description`,c.`img_name`,d.`price`,d.`purchase_price`,d.`price`,d.`order_id`<br /> FROM `Sku_Comparison` a<br /> LEFT JOIN `Item_Codes` b ON a.`stock_id`=b.`stock_id` <br /> LEFT JOIN `Product_Img` as c ON a.`stock_id`=c.`item_code`<br />  LEFT JOIN  `Sale_Order_de` as d ON d.`sku`=a.`sku`<br />  ORDER BY a.`id` DESC <br />
テーブル構造はないのですか?
1. インデックスは正しい必要があります。 2. 一時テーブルを最小限に抑えます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。