ホームページ >データベース >mysql チュートリアル >大きな MySQL テーブルの最後の N 行にある数値を効率的に検索するにはどうすればよいですか?

大きな MySQL テーブルの最後の N 行にある数値を効率的に検索するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-20 03:19:01858ブラウズ

How Can I Efficiently Search for a Number in the Last N Rows of a Large MySQL Table?

大規模な MySQL テーブルの最後の N 行にある数値を効率的に検索する

数百万行がある大規模な MySQL テーブルでは、次のことを確認する必要がある場合があります。特定の数値が最後の n 行に出現する場合。これを効率的に行うには、次のアプローチの利用を検討してください。

@chaos によって提案された概念を基に、いくつかの重要な変更によりクエリのパフォーマンスが向上します。

  • Explicit ORDER BY for LIMIT: 行の順序を確保するには、常に ORDER BY を LIMIT と組み合わせて指定します。暗黙的な順序付けに依存すると、一貫性のない結果が生じる可能性があり、移植性がありません。
  • 降順: 降順に並べることにより、テーブル内の合計行数を事前に知る必要がなくなります。 .
  • 派生テーブルの相関名: 元のテーブルと区別するために、派生テーブルに相関名 (テーブルの別名) を割り当てます。

これらを使用します

SELECT `id`
FROM (
    SELECT `id`, `val`
    FROM `big_table`
    ORDER BY `id` DESC
    LIMIT $n
) AS t
WHERE t.`val` = $certain_number;

このクエリは、big_table の最後の $n 行内で $certain_number の出現を効率的に検索し、データ検索のニーズに高速で信頼性の高いソリューションを提供します。

以上が大きな MySQL テーブルの最後の N 行にある数値を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。