sql >> Databáze >  >> RDS >> Mysql

Alternativa k ORDER BY RAND() na spojených stolech?

Burçin Yazıcı - Používám MySQL, takže časová razítka nedávají mili/mikrosekundy. Zkoušel jsem použít PHP microtime() a vložit to do dotazu, ale stále to vede k 'použití dočasných; pomocí filesort' při vysvětlování.

Prozatím nechávám dotaz neseřazený, vracím všechny výsledky a poté používám PHP

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

vybrat náhodný řádek. Jsem opatrný ohledně dopadu mysql_data_seek na výkon ale prozatím to ubírá tlak na databázi.




  1. 5 způsobů, jak zkontrolovat datový typ sloupce v SQLite

  2. Co je kardinalita v MySQL?

  3. Jak optimalizovat UPDATE dotaz „col =col + 1“, který běží na více než 100 000 záznamech?

  4. Hromadné vložky Salesforce z aplikace Microsoft Access