python里sqlite使用或不使用游标有什么区别?

python里sqlite使用或不使用游标有什么区别?

import sqlite3

conn = sqlite3.connect('db.sql')

c = conn.cursor()

c.execute(...)

c.close()

conn.commit()

conn.close()

python">import sqlite3

conn = 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

回到顶部