ホームページ > データベース > mysql チュートリアル > MySQL データベースから単純なランダム サンプルを効率的に取得するにはどうすればよいですか?

MySQL データベースから単純なランダム サンプルを効率的に取得するにはどうすればよいですか?

DDD
リリース: 2025-01-05 16:25:44
オリジナル
669 人が閲覧しました

How Can I Efficiently Get a Simple Random Sample from a MySQL Database?

MySQL データベースから単純なランダム サンプルを効率的に取得する方法

SQL では、大規模なデータセットからランダム サンプルを取得するのが困難な場合があります。従来のアプローチでは、ランダムな値によって行を順序付けし、必要な数の行を選択します。ただし、この方法はコストのかかるソートと RAND() 評価を必要とするため非効率的です。

特に MySQL の場合、代替アプローチによりパフォーマンスが大幅に向上します。一様に分散された乱数を生成する MySQL の RAND() 関数の独自の機能を利用することで、ソートを完全に回避できます。

式は次のとおりです。

select * from table where rand() <= ( desired sample size / total rows )
ログイン後にコピー

このクエリは、各行の乱数。値の範囲は 0 から 1 です。この乱数を、必要なサンプル サイズと行の総数に基づくしきい値と比較することで、

このアプローチにより、ソートのオーバーヘッドなしで効率的な O(n) パフォーマンスが可能になります。データベースは、行ごとの RAND() 評価の膨大な計算時間やソートの複雑さを招くことなく、必要なサンプル サイズを迅速に選択できます。

MySQL の rand() 関数の能力を活用することで、次のような機能が得られます。最適な速度と効率で単純なランダム サンプルを取得します。

以上がMySQL データベースから単純なランダム サンプルを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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