Impact d'un décalage LIMIT plus élevé sur la vitesse des requêtes MySQL
Lors de l'interrogation d'une grande table MySQL avec un décalage LIMIT croissant en conjonction avec ORDER BY, les utilisateurs peuvent rencontrer un ralentissement notable de la vitesse des requêtes. Cela est particulièrement évident lorsque la table dépasse 16 millions d'enregistrements ou a une taille d'environ 2 Go.
Par exemple, la requête suivante avec un petit décalage s'exécute beaucoup plus rapidement que celle avec un décalage plus grand :
SELECT * FROM large ORDER BY `id` LIMIT 0, 30
SELECT * FROM large ORDER BY `id` LIMIT 10000, 30
Bien que les deux requêtes ne récupèrent que 30 lignes, cette dernière prend beaucoup plus de temps malgré la surcharge négligeable de ORDER BY.
Pour optimiser ce scénario, envisagez d'utiliser une approche alternative :
SELECT * FROM large WHERE `id` > lastId LIMIT 0, 30
En maintenant systématiquement un décalage de zéro, la requête s'exécutera systématiquement à une vitesse optimale, même lors de la récupération de grandes quantités de données par itérations.
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!