ホームページ >データベース >mysql チュートリアル >大規模な MySQL データベースから単純なランダム サンプルを効率的に抽出するにはどうすればよいですか?
問題ステートメント:
データからの単純ランダム サンプル (SRS) の抽出大規模な MySQL データベースを効率的に処理するには、「明白な」アプローチ (SELECT * FROM テーブル) を使用するのは困難な場合があります。 RAND() LIMIT n) による順序。このメソッドの非効率性は、行ごとに RAND() を使用することとその後の並べ替えに起因し、その結果、リソースを大量に消費する O(n lg n) の複雑さが生じます。
効率的な解決策:
このハードルを克服するには、より効率的なアプローチの採用を検討してください:
SELECT * FROM table WHERE RAND() <= 0.3
この解決策0 から 1 までの行ごとに乱数を生成し、確率のしきい値 (この場合は 0.3) に基づいてその行を表示するかどうかを評価する機能により、「明白な」メソッドよりも優れたパフォーマンスを発揮します。
説明:
追加の考慮事項:
以上が大規模な MySQL データベースから単純なランダム サンプルを効率的に抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。