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

rychlý výběr náhodného řádku z velké tabulky v mysql

Vezměte všechna ID, vyberte z nich náhodné a načtěte celý řádek.

Pokud víte, že id jsou sekvenční bez děr, můžete jednoduše získat maximum a vypočítat náhodné id.

Pokud jsou tu a tam díry, ale většinou po sobě jdoucí hodnoty, a nezáleží vám na mírně zkreslené náhodnosti, vezměte maximální hodnotu, vypočítejte id a vyberte první řádek s id rovným nebo vyšším tomu, které jste vypočítali. Důvodem zkreslení je to, že ID sledující takové díry bude mít vyšší šanci, že bude vybráno, než ty, které následují jiné ID.

Pokud si objednáte náhodně, budete mít v rukou hrozný sken stolu a slovo rychlé se na takové řešení nevztahuje.

Nedělejte to, ani byste neměli objednávat pomocí GUID, má to stejný problém.



  1. Chyba MySQL:specifikace klíče bez délky klíče

  2. Jak změním výchozí hodnotu sloupce v PostgreSQL?

  3. SQLite JSON_REPLACE()

  4. Práce s daty JDBC mimo ASCII v Talendu