sql >> データベース >  >> RDS >> Mysql

このクエリを最適化するにはどうすればよいですか。実行に1分以上かかります

    計画担当者は、おそらくlimitを使用していません 結合前に注文テーブルから行を削除するためのヒント。したがって、サーバーはすべての行に対して結合を実行してから、ほんの数行を返す必要があります。

    これを試してください:

    select o.* from
    (select * order order by id desc limit 100) o
    inner join product p 
    on o.product_id=p.id 
    inner join person per 
    on o.person_id=per.id 
    order by o.id desc limit 100;
    

    編集:これは、対応する行がProductテーブルとPersonテーブルに存在することを保証する制約がある場合にのみ機能します。



    1. MySQL-値の自動デクリメント

    2. PDO AdvancedCRUDGeneratorツールを使用してPHPCRUDインターフェイスをすばやく構築する

    3. MySQLステートメントの実行には1分以上かかります

    4. MySQLデータベース内のすべてのトリガーをどのようにリストしますか?