Mysql
 sql >> Database >  >> RDS >> Mysql

selezione rapida di una riga casuale da una grande tabella in mysql

Prendi tutti gli ID, scegline uno a caso e recupera l'intera riga.

Se sai che gli ID sono sequenziali senza buchi, puoi semplicemente prendere il massimo e calcolare un ID casuale.

Se ci sono buchi qua e là ma per lo più valori sequenziali e non ti interessa una casualità leggermente distorta, prendi il valore massimo, calcola un id e seleziona la prima riga con un id uguale o superiore a quello che hai calcolato. Il motivo dell'inclinazione è che gli ID che seguono tali buchi avranno maggiori possibilità di essere scelti rispetto a quelli che seguono un altro ID.

Se ordini a caso, avrai tra le mani una terribile scansione del tavolo e la parola veloce non si applica a tale soluzione.

Non farlo, né dovresti ordinare tramite un GUID, ha lo stesso problema.