Maridb に対してクエリを実行しています。ASC 順序でクエリを実行すると、オプティマイザがチェックするレコード (r_rows) の数が減り、クエリが約 500 ミリ秒で完了します。しかし、順序を DESC に切り替えると、同じクエリに時間がかかります。約 227 万 r_rows で完了までにさらに時間がかかります。
###どうしてこれなの? ASC/DESC 順序がクエリのパフォーマンスに影響を与えるのはなぜですか?
これは SQL クエリです リーリー
次の 2 つの MariaDB 分析出力は実行計画を示しています
ASC で注文されたクエリは約 503 ミリ秒で完了しましたリーリー
DESC ASC 順序のクエリが完了しました ~9118 msああああ
インデックス最適化の提案
テーブルインデックス x_nuvo_eam_scheduled_m9e_e8s (ステータス、scheduled_date、scheduled_maintenance、sys_created_on) x_nuvo_eam_scheduled_m10s (sys_id)
その後、(括弧) と
リーリーティック
を持たないように変更されますが、スケジュールされた vs. によって維持されるよりクリーンなエイリアスも使用されます。 WHERE 条件と JOIN 条件を最適化するには、最初のテーブルに適切なインデックスを設定すると役立ちます。ただし、完全にカバーするインデックスを作成すると、各テーブルの元のデータ ページに戻るのではなく、すべての要素をインデックスから取得できるため、クエリにも役立ちます。