クエリ内の Order 句には MySQL のロード時間がかかりすぎる
P粉258788831
P粉258788831 2024-02-21 20:36:00
0
1
376

数百万のレコードがあり、同じレコードに対して異なる接続が必要になるという状況に陥っています。注文条件にも難しい部分があります。並べ替えを適用しない場合、クエリは高速に結果を返します。しかし、order 句を適用すると、結果が得られるまでに時間がかかりすぎます。

Order 句を使用しない場合、結果は 5-6 秒になります。

注文条件を適用すると、結果は 40-45#​​## 秒になります。 リーリー

注: すべての結合は重要です。いくつかの考慮事項のため、フィールドは選択クエリから削除されています。

説明の概要

P粉258788831
P粉258788831

全員に返信(1)
P粉182218860

問題は、LIMIT と ORDER BY の組み合わせにあります。

ORDER BY を使用しない場合、最初の 10 行がランダムに選択されるとクエリは停止します。 order by クエリでは、考えられるすべての行を収集し、それらを順番に並べ替えて、最初の 10 行のみを返す必要があります。

「postponed_consultation_datetime」が計算フィールドであることを考慮すると、これを高速化する方法は実際にはありません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート