Maison > base de données > tutoriel mysql > Comment puis-je sélectionner efficacement 10 lignes aléatoires dans une grande table MySQL ?

Comment puis-je sélectionner efficacement 10 lignes aléatoires dans une grande table MySQL ?

Barbara Streisand
Libérer: 2025-01-23 23:51:11
original
598 Les gens l'ont consulté

How Can I Efficiently Select 10 Random Rows from a Large MySQL Table?

Optimisation de la sélection aléatoire de lignes dans les grandes tables MySQL

Extraire 10 lignes aléatoires d'une table MySQL importante (par exemple, 600 000 lignes) nécessite une stratégie qui donne la priorité à la vitesse et à l'efficacité. L'approche naïve consistant à utiliser ORDER BY RAND() est notoirement lente pour les grands ensembles de données. Une méthode plus efficace est décrite ci-dessous :

La requête suivante fournit une solution beaucoup plus rapide :

<code class="language-sql">SELECT name
FROM random
WHERE id >= (SELECT FLOOR(RAND() * MAX(id)) FROM random)
ORDER BY id
LIMIT 10;</code>
Copier après la connexion

Cette requête fonctionne en déterminant d'abord un point de départ aléatoire dans la plage de la colonne id à l'aide de FLOOR(RAND() * MAX(id)). Il sélectionne ensuite les lignes où le id est supérieur ou égal à ce point de départ aléatoire. Enfin, il classe les résultats par id et limite la sortie à 10 lignes. Cela évite l'analyse complète de la table inhérente à ORDER BY RAND(), ce qui entraîne une amélioration substantielle des performances. Cette approche garantit une répartition relativement uniforme des lignes aléatoires dans la table.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal