使用python mysqldb以编程方式进行偏移/限制

时间:2010-12-06 07:28:29

标签: python mysql

我试图处理数据库表中的数据。同时加载它们将占用大部分计算机资源。继承我目前的代码

cursor.execute("SELECT * from sometable")
rs = cursor.fetchall()
.
# process 1: set operation
.
for a in rs:
    # process 2: put data in another db

有没有办法减少资源使用?就像在循环下一点一点地获取行一样?

2 个答案:

答案 0 :(得分:1)

您可以使用cursor.fetchone()。阅读它here。用法示例:

cursor.execute(query)
numrows = int(cursor.rowcount)
for x in range(0,numrows):
    row = cursor.fetchone()

您还可以考虑在mysql查询中使用LIMIT:

cursor.execute("SELECT * from sometable LIMIT 0, 100")

最后,避免使用星号运算符,只选择所需的列。

答案 1 :(得分:0)

由于之前的SELECT *语句,使用cursor.fetchone()可能仍会导致资源问题。我认为最好的方法是使用LIMIT限制查询结果,然后循环遍历它们。