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

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

Susan Sarandon
リリース: 2024-12-24 04:18:15
オリジナル
217 人が閲覧しました

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

大きな MySQL テーブルの最後の N 行の数値を検索する

このシナリオでは、数百万行からなる長いテーブルがあり、各行にインデックス ( autoincrement) と整数フィールド。指定した数値がテーブルの最後の n 行に含まれるかどうかをすばやく確認したいとします。

効率的な解決策

最も効果的なアプローチには、次のように派生テーブルを利用することが必要です。

SELECT `id` 
FROM (
    SELECT `id`, `val` 
    FROM `big_table` 
    ORDER BY `id` DESC 
    LIMIT $n 
) AS t
WHERE t.`val` = $certain_number;
ログイン後にコピー

説明:

  • このクエリbig_table から id 列と val 列を選択して、派生テーブルを作成します。
  • id 列に基づいて降順で派生テーブルを並べ替え、最新の行が最初に表示されるようにします。
  • LIMIT $n 句は、結果セットを最新の n 行に制限します。
  • 最後に、WHERE 条件が派生テーブルの val 列と一致します。指定された some_number に対して、最後の n 行にその番号を含む行を識別します。

利点:

  • インデックス検索: 自動インクリメント ID 列による並べ替えではテーブル インデックスを利用し、 search.
  • パフォーマンス: 結果セットを最後の n 行に制限すると、テーブル全体をスキャンする必要がなくなり、パフォーマンスが大幅に向上します。
  • 柔軟性: このクエリでは、$n パラメーターを変更して、最後の行のさまざまな範囲内を検索できます。

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

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