sql >> Database >  >> RDS >> Mysql

randomiseren van grote dataset

Je zou dit kunnen oplossen met wat denormalisatie:

  • Bouw een secundaire tabel die dezelfde pkeys en statussen bevat als uw gegevenstabel
  • Voeg een statusgroepkolom toe en vul deze in, die een soort sub-pkey zal zijn die u zelf automatisch nummert (1-gebaseerde automatische verhoging ten opzichte van een enkele status)

Als u niet hoeft te filteren, kunt u rand #s genereren op de pkey zoals u hierboven vermeldde. Als je toch moet filteren, genereer dan rands tegen de StatusPkeys van de specifieke status waarin je geïnteresseerd bent.

Er zijn verschillende manieren om deze tabel te bouwen. Je zou een procedure kunnen hebben die je met een interval uitvoert of je zou het live kunnen doen. Dit laatste zou echter een prestatiehit zijn, aangezien het berekenen van de StatusPkey duur zou kunnen worden.



  1. Query voor element van array in JSON-kolom

  2. Verhoog en verlaag de rijwaarde met 1 in MySQL

  3. Rails Migrations:geprobeerd om het type kolom te veranderen van string naar integer

  4. Wijzig kolomgegevenstype in MySQL zonder andere metagegevens te verliezen (DEFAULT, NOTNULL...)