Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Thay thế cho ORDER BY RAND () trên các bảng đã tham gia?

Burçin Yazıcı - Tôi đang sử dụng MySQL nên dấu thời gian sẽ không mang lại mili / micro giây. Tôi đã thử sử dụng microtime () của PHP và chèn nó vào truy vấn, nhưng điều này vẫn dẫn đến việc 'sử dụng tạm thời; sử dụng filesort 'khi giải thích.

Hiện tại, tôi đang để truy vấn không được sắp xếp, trả về tất cả kết quả, sau đó sử dụng PHP's

mysql_data_seek($result, rand(0, mysql_num_rows($result)-1));
$row=mysql_fetch_object($result);

để chọn một hàng ngẫu nhiên. Tôi thận trọng về tác động hiệu suất của mysql_data_seek nhưng nó đang giảm áp lực khỏi cơ sở dữ liệu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 2 cách trả về hàng chỉ chứa các ký tự không phải chữ và số trong MySQL

  2. Tên bảng MySQL dưới dạng tham số

  3. Cách kết nối nhà phát triển sql với máy chủ XAMPP MYSQL

  4. Không thể dừng MySQL trên OS X 10.10

  5. Bạn có thể có bao nhiêu cột (tối đa) trong một bảng MySQL?