Mysql
 sql >> Baza danych >  >> RDS >> Mysql

szybki wybór losowego wiersza z dużej tabeli w mysql

Zbierz wszystkie identyfikatory, wybierz z nich losowy i pobierz pełny wiersz.

Jeśli wiesz, że identyfikatory są sekwencyjne bez dziur, możesz po prostu złapać maksimum i obliczyć losowy identyfikator.

Jeśli są tu i ówdzie dziury, ale głównie wartości sekwencyjne i nie obchodzi cię lekko wypaczona losowość, chwyć maksymalną wartość, oblicz identyfikator i wybierz pierwszy wiersz z identyfikatorem równym lub wyższym od tego, który obliczyłeś. Powodem tego skrzywienia jest to, że id podążające za takimi dziurami będzie miało większą szansę na wybranie niż te, które podążają za innym id.

Jeśli zamówisz losowo, będziesz mieć okropny skan stołu na rękach, a słowo szybko nie dotyczy takiego rozwiązania.

Nie rób tego, ani nie powinieneś zamawiać przez GUID, to ma ten sam problem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najłatwiejszy sposób na dodanie wielu spacji do ciągu w MySQL — SPACE()

  2. Zwracanie zestawu wyników

  3. Kolejność SQL według liczby

  4. Uzyskaj rekordy z najwyższym/najmniejszym <cokolwiek> na grupę

  5. CURRENT_TIME Przykłady – MySQL