Optimisation de la sélection aléatoire de lignes dans les grandes tables MySQL
Récupérer efficacement une seule ligne aléatoire d'une grande table MySQL est vital pour de nombreuses applications. Une approche courante consiste à récupérer tous les ID de ligne, à en choisir un au hasard, puis à récupérer la ligne correspondante.
Pour les tables avec des ID séquentiels et sans espaces, trouver l'ID maximum et générer un ID aléatoire dans cette plage constitue une solution rapide. Cependant, si des écarts existent mais sont relativement peu fréquents, une méthode légèrement moins aléatoire mais toujours pratique consiste à estimer le nombre d'écarts, à obtenir l'ID maximum, à calculer un ID aléatoire et à récupérer la première ligne avec un ID supérieur ou égal à l'ID calculé. valeur.
Surtout, évitez d'utiliser ORDER BY RAND()
pour une sélection aléatoire de lignes. Cette méthode aboutit souvent à une analyse complète de la table, ce qui va à l'encontre de l'objectif d'une récupération rapide. De même, l'utilisation de GUID pour la commande est tout aussi inefficace.
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!