python里sqlite使用或不使用游标有什么区别?
import sqlite3conn = sqlite3.connect('db.sql')
c = conn.cursor()
c.execute(...)
c.close()
conn.commit()
conn.close()
和
python">import sqlite3conn = sqlite3.connect('db.sql')
conn.execute(...)
conn.commit()
conn.close()
区别在哪?什么情况需要使用cursor?
回答:
你的问题和这个问题一模一样: https://stackoverflow.com/que...
简单来说,根据官方文档的描述(https://docs.python.org/3/lib...)
This is a nonstandard shortcut that creates a cursor object by calling the cursor() method, calls the cursor’s execute() method with the parameters given, and returns the cursor.
也就是个简单的快捷方式而已,而且是nonstandard shortcut。
至于为什么使用游标(cursor),这是数据库底层普遍采用的一个概念。假想你的数据表非常庞大,远远超过你的内存容量,你觉得你一条select * from table
你的内存吃得消吗?因此Cursor
就是一种流式处理的概念,并不需要一次性把所有查到的数据全部读取到内存中,通过游标的游动将读取到这部分的数据缓冲到buffer中,交给你的程序处理,处理完毕再游动到下一条记录,如此反复,即可避免内存爆掉。
如果你有流式处理的经验的话,应该会很容易理解这个模式。
以上是 python里sqlite使用或不使用游标有什么区别? 的全部内容, 来源链接: utcz.com/p/938162.html