PESAN OLEH RAND() bukan satu-satunya penyelesaian?
Walaupun ORDER BY RAND()
ialah cara biasa untuk merawak keputusan dalam MySQL, ia tidak cekap apabila berbilang hasil rawak diperlukan. Kerana ini memerlukan pengisihan keseluruhan set hasil, ia amat tidak cekap untuk jadual besar.
Alternatif yang lebih cekap
Untuk mengoptimumkan pertanyaan sedemikian, adalah disyorkan untuk menggunakan kaedah yang lebih cekap:
<code class="language-sql">SELECT g.* FROM table g JOIN (SELECT id FROM table WHERE RAND() < p><strong>工作原理</strong></p><p>此优化后的查询使用了以下技术:</p></code>
Kelebihan kaedah pengoptimuman
Kaedah pengoptimuman ini mempunyai kelebihan berikut:
ORDER BY RAND()
, terutamanya untuk set hasil yang besar. Penghadan
Adalah penting untuk ambil perhatian bahawa kaedah ini mungkin tidak berfungsi dalam semua situasi. Pertanyaan kompleks yang melibatkan berbilang gabungan atau klausa WHERE
mungkin memerlukan subkueri dan teknik pengoptimuman yang lebih kompleks.
Atas ialah kandungan terperinci Adakah ORDER BY RAND() Cara Terbaik untuk Mendapatkan Keputusan Rawak Berbilang dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!