Apabila bekerja dengan set hasil yang besar dalam pangkalan data MySQL, penggunaan memori boleh menjadi kebimbangan. Pustaka MySQLDB menawarkan kelas SScursor untuk mengurangkan isu ini, menyediakan cara yang lebih cekap untuk mengendalikan volum data yang besar.
Penggunaan Memori fetchall()
Bertentangan dengan popular kepercayaan, melaksanakan fetchall() pada kedua-dua kursor asas dan SSkursor menggunakan jumlah memori yang sama. Ia memperuntukkan penimbal yang cukup besar untuk menyimpan keseluruhan set hasil dalam ingatan.
Menstrim dengan SScursor
Kekuatan SScursors terletak pada keupayaan mereka untuk mengulangi hasil tanpa memuatkan keseluruhan set data ke dalam ingatan. Untuk mencapai penstriman dengan SSkursor:
<code class="python">def stream_rows(cursor): for row in cursor: yield row</code>
<code class="python">for row in cursor: # Process row</code>
Kaedah Penstriman Paling Cekap
Kaedah penstriman yang paling berkesan ialah menggunakan penjana kerana ia mengelakkan overhed gelung tambahan. Penjana boleh dihantar ke fungsi lain atau digunakan terus untuk pemprosesan dan operasi penapisan.
Atas ialah kandungan terperinci Bagaimana untuk Menstrim Set Hasil Besar dengan Cekap dengan SSkursor MySQLDB?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!