mysqlの制限による順序付けの落とし穴を解決する方法

WBOY
リリース: 2023-05-27 11:03:22
転載
1579 人が閲覧しました

ページング クエリの実行時に発生する落とし穴:

問題が発見されました: 単一のインデックスのないフィールドを並べ替えた後、制限が見つかりました。並べ替えられたフィールドが同じ値を持ち、制限範囲内にある場合、取得される値は通常の並べ替え後の値

# ではないことがわかりました。 ## つまり、N 行にランク付けされたデータが key1 または key2 である可能性がある場合、ソート結果は key1 または key2 になる可能性があります。

mysql order by limit的坑怎么解决

ソート制限結果(インデックスなしのソートキー)

cnt を押してキーワードを取得し、上位 3 つの結果を分離します:

mysql order by limit的坑怎么解决

原文:

複数の行の ORDER BY 列の値が同じである場合、サーバーはそれらの行を任意の順序で自由に返すことができ、実行計画全体に応じて異なる方法で返す可能性があります。つまり、これらの行の並べ替え順序は非決定的です。順序付けされていない列に関して。

つまり、order by の列が同じ値を持つ場合、mysql はこれらの行をランダムに選択しますが、これは実行計画によって異なります。

解決策: order by 列にはインデックス列が含まれています

ここに主キー ID をソート列
として追加します。

以上がmysqlの制限による順序付けの落とし穴を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート