Maison  >  Article  >  base de données  >  Comment générer efficacement des valeurs aléatoires dans une plage dans MySQL ?

Comment générer efficacement des valeurs aléatoires dans une plage dans MySQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-26 11:58:02506parcourir

  How to Efficiently Generate Random Values Within a Range in MySQL?

Génération de valeurs aléatoires entre deux valeurs dans MySQL

Recherche d'une requête SQL pouvant renvoyer une valeur aléatoire dans une plage spécifiée, n'est pas une approche valable car RAND sert un objectif différent. Bien que la formule (RAND() * (max-min)) min semble prometteuse, elle produit des valeurs flottantes qui nécessitent un arrondi, ce qui complique le processus.

Méthode d'arrondi de MySQL : la solution optimale

L'utilisation de ROUND((RAND() * (max-min)) min) est la méthode préférée dans MySQL, ActionScript, JavaScript et Python pour générer des valeurs aléatoires dans une plage. Cette approche est très efficace et pratique, simplifiant la tâche par rapport aux alternatives PHP.

Performances PHP versus MySQL

Pour déterminer si PHP ou MySQL est plus approprié pour générer un grand nombre de valeurs aléatoires, un test de référence a été effectué.

Pour 100 000 itérations :

  • MySQL Select a pris environ 0,019 seconde.
  • PHP Select a pris environ 0,02 seconde .

Par conséquent, MySQL surpasse légèrement PHP (d'environ 2 à 3 %) lorsque seule la valeur aléatoire est nécessaire. Cependant, si des colonnes supplémentaires sont renvoyées, MySQL prend du retard sur PHP de 3 à 4 %.

Conseils d'optimisation

Pour des performances optimales, utilisez MySQL pour générer des valeurs aléatoires si seulement la valeur aléatoire est requise. Si des colonnes supplémentaires sont nécessaires, envisagez d'utiliser PHP pour une meilleure efficacité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn