大規模な MySQL テーブルからランダムな行を効率的に選択します
大規模なデータセットを扱う場合、行のランダムなサブセットを選択するのは一般的ですが困難な作業です。 600,000 行があるテーブルの場合、10 行をランダムに選択する高速かつ効率的な方法を見つけることが重要です。
解決策
この状況で最高のパフォーマンスを得るには、次の点を考慮してください:
このソリューションは、RAND() 関数と CEIL() 関数を利用して、許容範囲内のランダム ID を生成します。次に、JOIN 操作により、ランダムに生成された ID に基づいて対応する行が取得されます。 ORDER BY r1.id ASC および LIMIT 1 を使用することにより、クエリでは正しい行が選択されることが保証されます。
この方法では ID が一様に分布していることを前提としており、ID リスト内のギャップが許容されることに注意することが重要です。不均一な配布や ID の欠落など、より高度なシナリオについては、Jan Kneschke が提供する追加の例と戦略に関する記事を参照してください。
以上が大規模な MySQL テーブルからランダムな行を効率的に選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。