Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Memilih 10 Baris Rawak dengan Cekap daripada Jadual MySQL yang Besar?

Bagaimanakah Saya Boleh Memilih 10 Baris Rawak dengan Cekap daripada Jadual MySQL yang Besar?

Barbara Streisand
Lepaskan: 2025-01-23 23:51:11
asal
542 orang telah melayarinya

How Can I Efficiently Select 10 Random Rows from a Large MySQL Table?

Mengoptimumkan Pemilihan Baris Rawak dalam Jadual MySQL Besar

Mengekstrak 10 baris rawak daripada jadual MySQL yang besar (cth., 600,000 baris) memerlukan strategi yang mengutamakan kelajuan dan kecekapan. Pendekatan naif menggunakan ORDER BY RAND() terkenal lambat untuk set data yang besar. Kaedah yang lebih berkesan digariskan di bawah:

Pertanyaan berikut menyediakan penyelesaian yang jauh lebih pantas:

<code class="language-sql">SELECT name
FROM random
WHERE id >= (SELECT FLOOR(RAND() * MAX(id)) FROM random)
ORDER BY id
LIMIT 10;</code>
Salin selepas log masuk

Pertanyaan ini berfungsi dengan terlebih dahulu menentukan titik permulaan rawak dalam julat lajur id menggunakan FLOOR(RAND() * MAX(id)). Ia kemudian memilih baris yang id lebih besar daripada atau sama dengan titik permulaan rawak ini. Akhirnya, ia menyusun keputusan dengan id dan mengehadkan output kepada 10 baris. Ini mengelakkan imbasan jadual penuh yang wujud dalam ORDER BY RAND(), menghasilkan peningkatan prestasi yang ketara. Pendekatan ini memastikan taburan baris rawak yang agak sekata merentas jadual.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memilih 10 Baris Rawak dengan Cekap daripada Jadual MySQL yang Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan