Rumah >pangkalan data >tutorial mysql >Bagaimanakah Fungsi MySQL ORDER BY RAND() Sebenarnya Berfungsi?
Cara MySQL's ORDER BY RAND() Function Beroperasi
MySQL's ORDER BY RAND() fungsi menjana keputusan yang kelihatan rawak, tetapi mekanisme sebenar berbeza daripada kepercayaan yang biasa dipegang. Bertentangan dengan andaian, MySQL tidak menambah lajur nilai rawak yang mempengaruhi pengisihan. Sebaliknya, ia menggunakan proses berikut:
Masa Pelaksanaan Tidak Dijangka
Pertanyaan ujian yang disediakan menunjukkan masa pelaksanaan yang tidak dijangka:
Query | Execution Time |
---|---|
SELECT * FROM table ORDER BY RAND() LIMIT 1 | 30-40 seconds |
SELECT id FROM table ORDER BY RAND() LIMIT 1 | 0.25 seconds |
SELECT id, username FROM table ORDER BY RAND() LIMIT 1 | 90 seconds |
Perubahan dalam masa pelaksanaan ini dikaitkan dengan data berbeza yang diambil oleh setiap pertanyaan. Memilih keseluruhan baris (*) memerlukan kos yang lebih tinggi berbanding dengan mengambil hanya lajur (id) tertentu atau mengambil data yang telah diindeks (id).
Kaedah Alternatif untuk Pemilihan Rawak Pantas
Walaupun PESANAN OLEH RAND() mungkin tidak menawarkan prestasi optimum, kaedah alternatif boleh memberikan hasil yang lebih pantas:
Atas ialah kandungan terperinci Bagaimanakah Fungsi MySQL ORDER BY RAND() Sebenarnya Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!