Récupération de grands mysql Sélectionne dans des morceaux
face à de grandes requêtes de sélection MySQL dépassant des millions de lignes, il devient crucial pour optimiser les performances pour éviter d'éviter d'éviter les performances pour éviter d'éviter les performances erreurs de mémoire. Une approche efficace consiste à récupérer des données dans des morceaux, plutôt que d'essayer de récupérer l'ensemble de données à la fois.
pour y parvenir, vous pouvez utiliser la fonction de limite. En spécifiant la ligne de départ (décalage) et le nombre de lignes à récupérer (limite), vous pouvez récupérer des données dans des segments gérables. Par exemple, la requête suivante renvoie les 1 000 premières lignes:
SELECT * FROM MyTable ORDER BY whatever LIMIT 0,1000
pour récupérer des morceaux ultérieurs de 1000 lignes, ajustez le décalage et Limiter 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
Cependant, pour assurer la cohérence de vos données, il est recommandé de créer un tableau temporaire et de le remplir avec les résultats de la requête d'origine. Cela gèle les données dans le temps et empêche les modifications pendant le traitement. La table temporaire peut alors être interrogée en morceaux:
CREATE TEMPORARY TABLE MyChunkedResult AS (
SELECT *
FROM MyTable
ORDER BY whatever
);
-- retrieve row chunks
SELECT * FROM MyChunkedResult LIMIT 0, 1000;
SELECT * FROM MyChunkedResult LIMIT 1000,1000;
SELECT * FROM MyChunkedResult LIMIT 2000,1000;
Enfin, n'oubliez pas de supprimer la table temporaire lorsque vous avez terminé pour éviter une utilisation de stockage inutile:
DROP TEMPORARY TABLE MyChunkedResult;
] En mettant en œuvre cette approche, vous pouvez traiter efficacement de grands sélections MySQL dans des morceaux, améliorant les performances et atténuant les problèmes de mémoire.
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