"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment puis-je récupérer efficacement des sélections MySQL volumineuses en utilisant le chunking ?

Comment puis-je récupérer efficacement des sélections MySQL volumineuses en utilisant le chunking ?

Publié le 2024-11-09
Parcourir:538

How can I efficiently retrieve large MySQL selects by using chunking?

Récupérer efficacement de grandes sélections MySQL avec le chunking

La gestion de grands ensembles de données dans MySQL peut souvent entraîner des problèmes de mémoire lors de la récupération des données. Pour résoudre ce problème, le chunking offre une solution efficace.

Technique de chunking

Le chunking consiste à diviser une grande requête de sélection en sous-ensembles plus petits. Ce faisant, vous pouvez traiter les données en portions gérables, évitant ainsi les limitations de mémoire.

Considérez cet exemple :

SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000;

Cette requête récupère les 1 000 premières lignes de MyTable. Pour récupérer les 1 000 suivants, vous devez incrémenter le décalage LIMIT :

SELECT * FROM MyTable ORDER BY whatever LIMIT 1000,1000;

Maintenir l'ordre des lignes

Pour garantir que l'ordre des lignes est conservé, créez une table temporaire en tant qu'instantané de la table d'origine :

CREATE TEMPORARY TABLE MyChunkedResult AS (
  SELECT *
  FROM MyTable
  ORDER BY whatever
);

Cette table temporaire contiendra les données ordonnées pendant que vous fragmentez les résultats :

SELECT * FROM MyChunkedResult LIMIT 0, 1000;

Incrémentez le décalage LIMIT pour les fragments suivants .

Considérations

  • Envisagez d'utiliser un morceau plus gros tailles pour moins d'itérations.
  • Déterminez la taille de segment optimale en fonction de votre ensemble de données particulier et des ressources de votre serveur.
  • Supprimez la table temporaire après avoir terminé le processus de segmentation.

En implémentant cette technique de segmentation, vous pouvez récupérer efficacement des résultats de sélection MySQL volumineux en morceaux, évitant ainsi les problèmes de mémoire et améliorant les performances.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3