recherche
Maisonbase de donnéestutoriel mysqlPourquoi les requêtes MySQL avec des décalages LIMIT importants sont-elles si lentes ?

Why Are MySQL Queries with Large LIMIT Offsets So Slow?

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 :

  1. Stockez le dernier ID d'un ensemble de lignes récupéré (par exemple, lastId = 530).
  2. Modifiez la requête pour inclure la condition WHERE id > lastId.
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!

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
MySQL: Quels jeux de caractères sont disponibles pour les types de données de chaîne?MySQL: Quels jeux de caractères sont disponibles pour les types de données de chaîne?May 10, 2025 am 12:07 AM

MySqloffersVariousCharactersetsStringDatatypes: 1) Latin1Forwesterner européen, 2) utf8formullingalSupport, 3) utf8Mb4f OREXTENDENDUNICODEINCOLDINGEMOJIS, 4) UCS2FORFIXED-WIDTHENCODING, AND5) ASCIiforBasiclatin.ChoosingTheReightSetSenSur

MySQL: Le streaming de blobs vaut mieux que de les stocker?MySQL: Le streaming de blobs vaut mieux que de les stocker?May 10, 2025 am 12:06 AM

Le streaming blobs est en effet meilleur que le stockage direct car il réduit l'utilisation de la mémoire et améliore les performances. 1) En lisant progressivement et en traitement des fichiers, le ballonnement de la base de données et la dégradation des performances sont évités. 2) Le streaming nécessite une logique de code plus complexe et peut augmenter le nombre d'opérations d'E / S.

Types de chaînes MySQL: stockage, performances et meilleures pratiquesTypes de chaînes MySQL: stockage, performances et meilleures pratiquesMay 10, 2025 am 12:02 AM

MysqlStringTypeSimpactStorageAndPerformanceSfollows: 1) Charisfixed-Length, AlwaysusingTheSameStoragespace, qui, de manière morépace-efficace sans espace.

Comprendre les types de chaînes MySQL: varchar, texte, char, et plus encoreComprendre les types de chaînes MySQL: varchar, texte, char, et plus encoreMay 10, 2025 am 12:02 AM

MysqlstringTypeSincludevarchar, text, char, énum, ​​andset.1) varcharinsversatileforvariable-LengthstringSuptoSpecifiedImmit.2)

Quels sont les types de données de chaîne dans MySQL?Quels sont les types de données de chaîne dans MySQL?May 10, 2025 am 12:01 AM

MysqloffersvariousStringDatatypes: 1) Charforfixed-LengthStrings, 2) varcharforvariable-LengthText, 3) binaryandvarbinaryforbinarydata, 4) blobandtextforlatedata, and5) enumandsetfor.

Comment accorder des autorisations aux nouveaux utilisateurs de MySQLComment accorder des autorisations aux nouveaux utilisateurs de MySQLMay 09, 2025 am 12:16 AM

TOGRANTERMISSIMESTESTERSWMYSQLUSERS, SuivreTheSesteps: 1) AccessMysqlasauserwithSufficientPrivileges, 2) CreateEnewUserwithThereAserercommand, 3) UsethegrantCommandTospecifyPerMissionsLikEselect, insert, mise à jour, OrallegandSonSpecificaCificdataStAtAnSorables, et4), 4).

Comment ajouter des utilisateurs dans MySQL: un guide étape par étapeComment ajouter des utilisateurs dans MySQL: un guide étape par étapeMay 09, 2025 am 12:14 AM

ToaddUsersInmysqleffecativement et en résultant, suivez-vous: 1) UsethCreateAsTatement à AddanEwUser, spécifiant le dossier d'astron.

MySQL: ajout d'un nouvel utilisateur avec des autorisations complexesMySQL: ajout d'un nouvel utilisateur avec des autorisations complexesMay 09, 2025 am 12:09 AM

ToaddanewUserwithComplexPermisessionsInmysql, suivi destiné: 1) Création sword ';. 2) GRANTREADACCESSTOALLTABLESSIn'MYDATABASE'WithGrantsElectonMyDatabase.To'newuser' @ 'LocalHost';. 3) GRANTWRITEACESSTO '

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

MinGW - GNU minimaliste pour Windows

MinGW - GNU minimaliste pour Windows

Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP