sql >> Databasteknik >  >> RDS >> Mysql

randomisera stor datamängd

Du kan lösa detta med lite denormalisering:

  • Skapa en sekundär tabell som innehåller samma p-nycklar och statusar som din datatabell
  • Lägg till och fyll i en statusgruppskolumn som kommer att vara en sorts undernyckel som du själv numrerar automatiskt (1-baserat autoinkrement i förhållande till en enskild status)

När du inte behöver filtrera kan du generera rand #s på pkey som du nämnde ovan. När du behöver filtrera, generera rands mot StatusPkeys för den särskilda status du är intresserad av.

Det finns flera sätt att bygga detta bord. Du kan ha en procedur som du kör på ett intervall eller så kan du göra det live. Det senare skulle dock bli en prestationssuccé eftersom beräkningen av StatusPkey kan bli dyrt.



  1. INFOGA ... PÅ DUPLIKATNYCKELUPPDATERING med VAR?

  2. Få standardvärdena för tabellkolumner i Postgres?

  3. mysql join table query 2 värden

  4. Vilken betydelse har indexnamnet när man skapar ett index i MySQL?