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

randomisering af stort datasæt

Du kan løse dette med en denormalisering:

  • Byg en sekundær tabel, der indeholder de samme pkeys og statusser som din datatabel
  • Tilføj og udfyld en statusgruppekolonne, som vil være en slags undernøgle, som du selv nummererer automatisk (1-baseret autoinkrement i forhold til en enkelt status)

Når du ikke behøver at filtrere, kan du generere rand #s på pkey som du nævnte ovenfor. Når du har brug for at filtrere, så generér rands mod StatusPkeys for den særlige status, du er interesseret i.

Der er flere måder at bygge dette bord på. Du kan have en procedure, som du kører på et interval, eller du kan gøre det live. Sidstnævnte ville dog være et præstationshit, da beregningen af ​​StatusPkey kunne blive dyr.



  1. Rails, PostgreSQL og History Triggere

  2. Hvordan gemmer man et link i mysql?

  3. Mysql vælg række, når kolonneværdien ændres

  4. Oracle indsæt fra vælg i tabel med flere kolonner