sql >> Databasteknik >  >> RDS >> Mysql

snabbval av en slumpmässig rad från en stor tabell i mysql

Ta alla id:n, välj ett slumpmässigt från det och hämta hela raden.

Om du vet att id:n är sekventiella utan hål, kan du bara ta maxvärdet och beräkna ett slumpmässigt id.

Om det finns hål här och där men mestadels sekventiella värden, och du inte bryr dig om en något skev slumpmässighet, ta tag i maxvärdet, beräkna ett id och välj den första raden med ett id som är lika med eller över det du beräknade. Anledningen till snedställningen är att id:s som följer sådana hål har större chans att bli plockade än de som följer ett annat id.

Om du beställer slumpmässigt kommer du att få en fruktansvärd bordscanning på händerna och ordet snabb gäller inte för en sådan lösning.

Gör inte det, inte heller bör du beställa med en GUID, det har samma problem.



  1. Oracle hittar en begränsning

  2. Hur lägger jag till en referens till MySQL-anslutningen för .NET?

  3. Hur LIKE-operatören fungerar i MariaDB

  4. Konstruktorn SQLiteOpenHelper() är odefinierad