Memuatkan Hasil Pertanyaan SQL Besar-besaran ke dalam Pandas DataFrames dengan cekap
Memproses set data yang luas selalunya melibatkan pengambilan semula data daripada pangkalan data SQL dan memuatkannya ke dalam DataFrames panda. Walau bagaimanapun, memuatkan berjuta-juta rekod secara langsung boleh membawa kepada ralat ingatan dengan mudah.
Ralat biasa timbul daripada cubaan memuatkan keseluruhan set data ke dalam memori secara serentak. Pandas menawarkan penyelesaian: parameter chunksize
dalam fungsi read_sql_query
nya.
Memanfaatkan chunksize
untuk Pemuatan Data Bertambah:
Parameter chunksize
membolehkan anda membaca hasil pertanyaan SQL dalam kelompok yang lebih kecil dan boleh diurus, dengan ketara mengurangkan ketegangan memori.
<code class="language-python">import pandas as pd pd.read_sql_query(sql, engine, chunksize=100000)</code>
Dengan menyatakan chunksize
, anda mengawal bilangan baris yang dibaca dalam setiap lelaran.
Contoh Praktikal:
<code class="language-python">sql = "SELECT * FROM MyTable" for chunk in pd.read_sql_query(sql, engine, chunksize=5): # Process each chunk individually print(chunk)</code>
Kod ini berulang melalui hasil pertanyaan, memproses setiap chunk
secara bebas. Ini menghalang beban memori dengan mengendalikan data dalam bahagian yang lebih kecil dan mudah dihadam.
Strategi Pengoptimuman Selanjutnya:
Walaupun chunksize
sangat berkesan, pertimbangkan pengoptimuman tambahan ini untuk set data yang besar:
Walau bagaimanapun, untuk banyak senario, menggunakan parameter chunksize
menyediakan penyelesaian yang mudah dan mantap kepada pengurusan memori apabila bekerja dengan pertanyaan SQL yang besar menghasilkan panda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengelak Ralat Memori Semasa Memuatkan Hasil Pertanyaan SQL yang Besar ke dalam Bingkai Data Pandas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!