SELECT r1.name FROM random AS r1
JOIN (SELECT (RAND() *
(SELECT MAX(id) FROM random)) AS id
) AS r2
WHERE r1.id >= r2.id
ORDER BY r1.id ASC
LIMIT 10
Source: http://jan.kneschke.de/projects/mysql/order-by-rand/
Mẫu này truy vấn chắc chắn nhanh hơn SELECT r1.name FROM random ORDER BY RAND() rồi. Tuy nhiên, kết quả truy vấn nó gần nhau quá, và nó ko dùng đối số LIMIT được.
Xin cám ơn ae,[Hỏi] Truy vấn SQL nhanh với random records
command05/11/20175260 lượt xem21 bình luận
Chào ae,
Các bác ở đây có thể nhiều lần lấy ngẫu nhiên records từ DB. Ae đang dùng cách nào để truy vấn dữ liệu hơn 300k records mà nhanh vậy?
Mình thấy trên mạng có mẫu thế này:
Bình luận
Đang tải...
Đang kiểm tra đăng nhập...
