Pengenalan
Apabila berurusan dengan set hasil besar-besaran dalam MySQL , memelihara ingatan adalah penting. SSCursor (Kursor Sisi Pelayan) menawarkan penyelesaian untuk mengendalikan senario sedemikian dengan cekap.
SSCursor lwn. Kursor Pangkalan untuk fetchall()
fetchall() mendapatkan semula semua baris daripada keputusan ditetapkan ke dalam ingatan. Walaupun ini mungkin kelihatan seperti pendekatan yang paling cekap, ia menimbulkan overhed memori yang ketara untuk set data yang besar. Dalam kes sedemikian, SSCursor mengatasi kursor asas. SSCursor menyimpan penuding sebelah pelayan, mengurangkan penggunaan memori pada sisi klien.
Menstrim Baris daripada SSCursor
Ya, anda boleh menstrim baris satu demi satu atau dalam ketulan daripada SSCursor. Berikut ialah pendekatan non-fetch() untuk penstriman:
<code class="python">import MySQLdb.cursors connection=MySQLdb.connect( host="thehost",user="theuser", passwd="thepassword",db="thedb", cursorclass = MySQLdb.cursors.SSCursor) cursor=connection.cursor() cursor.execute(query) for row in cursor: print(row)</code>
Pendekatan ini berulang pada baris tanpa mendapatkan semula set hasil keseluruhan ke dalam memori, membolehkan pemprosesan set data besar yang cekap.
Atas ialah kandungan terperinci Bagaimanakah SSCursor Boleh Membantu Mengoptimumkan Penggunaan Memori Semasa Mengendalikan Set Keputusan MySQL yang Besar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!