Maison > base de données > tutoriel mysql > le corps du texte

Comment récupérer de grandes sélections MySQL en morceaux pour des performances améliorées ?

Linda Hamilton
Libérer: 2024-10-26 06:11:31
original
835 Les gens l'ont consulté

How to Retrieve Large MySQL Selects in Chunks for Enhanced Performance?

Récupération de sélections MySQL volumineuses en morceaux pour des performances améliorées

Lorsque vous traitez des ensembles de résultats massifs dépassant 70 millions de lignes dans MySQL, récupérez toutes les données à une fois peut conduire à un épuisement de la mémoire. Pour résoudre ce problème, l'optimisation du processus de récupération des données via le chunking devient cruciale.

La clause LIMIT fournit une solution pour récupérer des données par lots. En spécifiant la ligne de départ et le nombre maximum de lignes dans l'instruction LIMIT, vous pouvez récupérer les données en morceaux plus petits. Par exemple :

SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000
Copier après la connexion

Cette requête récupère les 1 000 premières lignes, où 0 est la ligne de départ indexée zéro et 1 000 est le nombre maximum de lignes. Pour continuer à récupérer les morceaux suivants, vous pouvez incrémenter la ligne de départ en conséquence :

SELECT * FROM MyTable ORDER BY whatever LIMIT 1000,1000 -- rows 1,001 - 2,000
SELECT * FROM MyTable ORDER BY whatever LIMIT 2000,1000 -- rows 2,001 - 3,000
Copier après la connexion

Cependant, pour éviter que la table sous-jacente ne change lors de la récupération des données, il est recommandé de stocker les résultats dans une table temporaire :

CREATE TEMPORARY TABLE MyChunkedResult AS (
  SELECT *
  FROM MyTable
  ORDER BY whatever
);
Copier après la connexion

Après avoir créé la table temporaire, vous pouvez en récupérer des fragments de données :

SELECT * FROM MyChunkedResult LIMIT 0, 1000;
SELECT * FROM MyChunkedResult LIMIT 1000,1000;
SELECT * FROM MyChunkedResult LIMIT 2000,1000;
Copier après la connexion

Le choix de la taille des fragments dépend du cas d'utilisation spécifique, et il est recommandé d'expérimenter avec des fragments plus grands pour optimisation des performances. De plus, n'oubliez pas de supprimer la table temporaire une fois le processus terminé :

DROP TEMPORARY TABLE MyChunkedResult;
Copier après la connexion

En suivant ces étapes, vous pouvez récupérer efficacement les résultats de sélection MySQL volumineux en morceaux, améliorant ainsi l'utilisation de la mémoire et les performances globales.

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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!