Mysql
 sql >> Base de données >  >> RDS >> Mysql

randomisation d'un grand ensemble de données

Vous pouvez résoudre ce problème avec une dénormalisation :

  • Créez une table secondaire qui contient les mêmes pkeys et statuts que votre table de données
  • Ajoutez et remplissez une colonne de groupe de statuts qui sera une sorte de sous-clé que vous numéroterez vous-même automatiquement (auto-incrémentation de base 1 par rapport à un seul statut)

Lorsque vous n'avez pas besoin de filtrer, vous pouvez générer des numéros rand sur la pkey comme vous l'avez mentionné ci-dessus. Lorsque vous avez besoin de filtrer, générez des rands par rapport aux StatusPkeys du statut particulier qui vous intéresse.

Il existe plusieurs manières de construire ce tableau. Vous pouvez avoir une procédure que vous exécutez sur un intervalle ou vous pouvez le faire en direct. Ce dernier serait cependant un impact sur les performances car le calcul de StatusPkey pourrait coûter cher.