đó là hiệu quả hơn (khi quản lý hơn 100K hồ sơ):MySQL vs PHP khi lấy một mục ngẫu nhiên
A. Mysql
SELECT * FROM user ORDER BY RAND();
tất nhiên, sau đó tôi sẽ đã có tất cả các các trường từ bản ghi đó.
B. PHP
sử dụng memcached để có $ cache_array giữ tất cả các dữ liệu từ "SELECT id_user TỪ sử dụng ORDER BY id_user" trong vòng 1 giờ hoặc lâu hơn ... và sau đó:
$ id = array_rand ($ cache_array);
tất nhiên, sau đó tôi phải thực hiện một cuộc gọi MYSQL với:
SELECT * FROM user WHERE id_user = $id;
như vậy ... đó là hiệu quả hơn? A hoặc B?
trùng lặp: http://stackoverflow.com/questions/1823306/alerternative-to-mysql-order-by-rand –
@OMG Ngựa Non: Đó là tương tự, nhưng không phải là một người bị mắc mưu.Anh ấy không yêu cầu cách tốt nhất để thực hiện nó trong Mysql, anh ấy yêu cầu so sánh hai phương pháp. – ryeguy
Theo đồ thị này (xem liên kết ở cuối), ~ 100K được sắp xếp theo RAND() là phụ thứ hai. Tôi tò mò muốn xem liệu PHP (ít hơn .NET hay J2EE) sẽ cung cấp hiệu suất tương tự: http://stuff.dasprids.de/images/benchmark-random-row-full.png –