数百万のレコードがあり、同じレコードに対して異なる接続が必要になるという状況に陥っています。注文条件にも難しい部分があります。並べ替えを適用しない場合、クエリは高速に結果を返します。しかし、order 句を適用すると、結果が得られるまでに時間がかかりすぎます。
Order 句を使用しない場合、結果は 5-6 秒になります。
注文条件を適用すると、結果は 40-45### 秒になります。
リーリー
注: すべての結合は重要です。いくつかの考慮事項のため、フィールドは選択クエリから削除されています。
説明の概要
問題は、LIMIT と ORDER BY の組み合わせにあります。
ORDER BY を使用しない場合、最初の 10 行がランダムに選択されるとクエリは停止します。 order by クエリでは、考えられるすべての行を収集し、それらを順番に並べ替えて、最初の 10 行のみを返す必要があります。
「postponed_consultation_datetime」が計算フィールドであることを考慮すると、これを高速化する方法は実際にはありません。