エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
MySQLのrand()ランダム関数の負荷問題を考えてみる
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
MySQLのrand()ランダム関数の負荷問題を考えてみる
MySQLで結構使う場面が多いランダム関数rand()ですが、間違った指定をするとデータベースに思わぬ負荷を... MySQLで結構使う場面が多いランダム関数rand()ですが、間違った指定をするとデータベースに思わぬ負荷をかけることになります。 今回はMySQLの指定方法からどの程度の負荷が掛かるのかを簡単にまとめ、DB設計の見直しや理想のプログラムも参考程度に掲載してみます。 テーブルからランダムに取り出す時の負荷 もちろん少ないレコードならば大きな問題にはなりませんが、数十万行といった大規模データになってくると以下の負荷がかかって一瞬でサーバーダウンも夢ではなくなりますので注意が必要ですね。 無指定ランダム SELECT * FROM table ORDER BY RAND(); この指定は最悪かもしれません。全件取得と同等の負荷が掛かります。MySQLなどのDBは効率化を考えた記述ができる部分には積極的に利用していかないと、サーバーが悲鳴をあげます。 取得件数指定ランダム SELECT * FR