8
MySQLのORDER BY RAND()関数を最適化するにはどうすればよいですか?
クエリを最適化して、を調べますmysql-slow.log。 遅いクエリのほとんどにが含まれていますORDER BY RAND()。この問題を解決するための実際の解決策が見つかりません。MySQLPerformanceBlogで可能な解決策がありますが、これで十分だとは思いません。最適化が不十分な(または頻繁に更新されるユーザー管理の)テーブルでは機能しないか、-でPHP生成されたランダムな行を選択する前に2つ以上のクエリを実行する必要があります。 この問題の解決策はありますか? ダミーの例: SELECT accomodation.ac_id, accomodation.ac_status, accomodation.ac_name, accomodation.ac_status, accomodation.ac_images FROM accomodation, accomodation_category WHERE accomodation.ac_status != 'draft' AND accomodation.ac_category = accomodation_category.acat_id AND accomodation_category.acat_slug != 'vendeglatohely' AND ac_images != 'b:0;' ORDER BY RAND() LIMIT 1