ホームページ > データベース > mysql チュートリアル > 大規模な MySQL テーブルからランダムな行をすばやく取得するにはどうすればよいですか?

大規模な MySQL テーブルからランダムな行をすばやく取得するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2025-01-19 07:16:13
オリジナル
278 人が閲覧しました

How Can I Quickly Retrieve a Random Row from a Large MySQL Table?

大規模な MySQL テーブルでのランダム行選択の最適化

大規模な MySQL テーブルから単一のランダムな行を効率的に取得することは、多くのアプリケーションにとって不可欠です。一般的なアプローチには、すべての行 ID をフェッチし、ランダムに 1 つを選択して、対応する行を取得することが含まれます。

ID が連続していてギャップがないテーブルの場合、最大 ID を見つけてその範囲内でランダム ID を生成すると、高速な解決策が得られます。 ただし、ギャップが存在するものの比較的頻度が低い場合は、ギャップ数を推定し、最大 ID を取得し、ランダム ID を計算し、計算された値以上の ID を持つ最初の行を取得するという、ランダム性は多少劣りますが実用的な方法があります。値。

重要なことは、ランダムな行選択に ORDER BY RAND() を使用することは避けてください。この方法では、多くの場合、テーブル全体のスキャンが行われ、迅速な検索の目的が損なわれます。 同様に、順序付けに GUID を使用することも同様に非効率的です。

以上が大規模な MySQL テーブルからランダムな行をすばやく取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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