Maison > base de données > tutoriel mysql > Comment puis-je gérer des requêtes SQL volumineuses dans Pandas sans manquer de mémoire ?

Comment puis-je gérer des requêtes SQL volumineuses dans Pandas sans manquer de mémoire ?

Barbara Streisand
Libérer: 2025-01-13 08:48:42
original
856 Les gens l'ont consulté

How Can I Handle Large SQL Queries in Pandas Without Running Out of Memory?

Pandas et grandes requêtes SQL : une approche efficace en mémoire

Le traitement de requêtes SQL dépassant 5 millions d'enregistrements à l'aide de pandas.io.sql.read_frame() peut entraîner des erreurs de mémoire. Cependant, Pandas offre une solution robuste pour gérer des ensembles de données aussi volumineux : les traiter en morceaux plus petits et gérables.

Depuis la version 0.15 de pandas, la fonction read_sql_query() intègre un paramètre chunksize. Cela vous permet de récupérer les résultats des requêtes de manière itérative, réduisant ainsi considérablement la consommation de mémoire. Vous spécifiez le nombre souhaité d'enregistrements par bloc, décomposant ainsi la requête volumineuse en éléments plus petits et plus faciles à gérer.

Par exemple, pour traiter une requête par blocs de 5 000 enregistrements :

<code class="language-python">sql = "SELECT * FROM MyTable"
for chunk in pd.read_sql_query(sql, engine, chunksize=5000):
    # Process each chunk here (e.g., calculations, analysis, etc.)
    print(chunk) </code>
Copier après la connexion

Cette approche itérative évite de charger simultanément l’intégralité de l’ensemble de données en mémoire. Chaque morceau est traité indépendamment, minimisant l'empreinte mémoire et permettant une manipulation efficace des données dans les DataFrames pandas, même avec des ensembles de données extrêmement volumineux. Le paramètre chunksize est essentiel pour gérer efficacement les requêtes SQL importantes et éviter l'épuisement de la mémoire.

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