Maison >base de données >tutoriel mysql >ORDER BY RAND() est-il le meilleur moyen d'obtenir plusieurs résultats aléatoires dans MySQL ?
ORDER BY RAND() n'est pas la seule solution ?
Bien que ORDER BY RAND()
soit un moyen courant de randomiser les résultats dans MySQL, il est inefficace lorsque plusieurs résultats aléatoires sont nécessaires. Étant donné que cela nécessite de trier l’intégralité du jeu de résultats, cette méthode est extrêmement inefficace pour les grandes tables.
Alternatives plus efficaces
Afin d'optimiser ces requêtes, il est recommandé d'utiliser une méthode plus efficace :
<code class="language-sql">SELECT g.* FROM table g JOIN (SELECT id FROM table WHERE RAND() < p><strong>工作原理</strong></p><p>此优化后的查询使用了以下技术:</p></code>
Avantages des méthodes d'optimisation
Cette méthode d'optimisation présente les avantages suivants :
ORDER BY RAND()
, en particulier pour les grands ensembles de résultats. Limitations
Il est important de noter que cette méthode peut ne pas fonctionner dans toutes les situations. Les requêtes complexes impliquant plusieurs jointures ou clauses WHERE
peuvent nécessiter des sous-requêtes et des techniques d'optimisation plus complexes.
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!