sql >> データベース >  >> RDS >> Mysql

MySQL:限られたクエリ結果をシャッフルしますか?

    rand()を使用できます 、しかしパフォーマンスはひどいです

    select * from users order by rand() limit 5; <-- slow
    

    すべてのユーザーIDのリストをシリアル化配列に格納し、ディスクファイルにキャッシュすることをお勧めします。 (定期的に更新)

    したがって、PHPを使用してシリアル化を解除し、PHP array_randを使用できます。 5人のランダムなユーザーを選択します。

    完全な情報を取得するには、次のことができます

    select * from users where user_id in(...); <-- very fast
    


    1. SQL Serverで同等のFIND_IN_SET()

    2. 無料の部屋を探す(予約システム)

    3. MySQLデータベースに緯度と経度の値を保存する際の問題

    4. ユーザーのログインを維持するための正しく安全な方法は何ですか?クッキー?セッション? PHP &&MYSQL