2024-10-03 02:37:00 发布
网友
我在网上看到了一些例子,展示了如何从Python连接到数据库, 然后从表中提取数据并将其插入列表或打印-使用循环。在
必须使用循环吗?难道没有更简单的方法吗,比如PythonList=SQLRecordSet; 或者是直接使用记录集的方法?在
我关心的是性能,而不是代码的长度。。在
有两种方法可以解决您面临的性能问题:
1。一次性获取所有记录
对于大多数PEP249实现,可以使用以下语句。这实际上是返回一个包含所有结果行的列表(Python列表)。在
rows = cursor.fetchall()
另一方面,如果您使用MySQLdb或PyMySQL,那么我建议您使用以下方法。在
您也可以将rows = cursor.fetchall()用于MySQLdb或PyMySQL,但它与结果不一致,因为它可以返回一个列表或一个元组,其中,list(cursor)总是返回一个列表。在
list(cursor)
2。一次仅限一行以减少内存占用
此方法将结果集存储在服务器中,因此Python不需要创建元组列表。当返回的数据非常大时,请使用此方法。在
conn = MySQLdb.connect(..., cursorclass=cursors.SSCursor) cursor = conn.cursor() cursor.execute('SELECT * FROM TABLE') for row in cursor: print(row)
有两种方法可以解决您面临的性能问题:
1。一次性获取所有记录
对于大多数PEP249实现,可以使用以下语句。这实际上是返回一个包含所有结果行的列表(Python列表)。在
另一方面,如果您使用MySQLdb或PyMySQL,那么我建议您使用以下方法。在
^{pr2}$您也可以将
rows = cursor.fetchall()
用于MySQLdb或PyMySQL,但它与结果不一致,因为它可以返回一个列表或一个元组,其中,list(cursor)
总是返回一个列表。在2。一次仅限一行以减少内存占用
此方法将结果集存储在服务器中,因此Python不需要创建元组列表。当返回的数据非常大时,请使用此方法。在
相关问题 更多 >
编程相关推荐