python mysqldb连接错误

时间:2013-06-09 03:09:55

标签: python mysql-python

我的问题发生如下:

我使用mysqldb的API,代码如下:

 conn = MySQLdb.connect(host='192.168.1.16', user='henry', passwd='password', db='test', charset='utf8')
 cur = conn.cursor()

没关系,连接mysql是成功的,它也适用于:

select count(*) from songs;   everthing is allright.

但如果我使用这样的SQL:

select * from songs;

错误是:

connect mysqldb error. the songs table has 5000000 rows.

2 个答案:

答案 0 :(得分:1)

MySQLdb保存内存中select语句的所有行和列,在你的情况下是5M行* n列,所以错误可能是由两个原因引起的:
   1.结果太大,无法保存在内存中。
   2.结果太大,无法通过网络连接传输。
  
您可能会尝试返回几行,而不是所有行。如果您真的想要检索整个表格,请多次完成。

答案 1 :(得分:0)

詹姆斯熊是正确的,你可能已经没有记忆了。您应该使用游标,以便只在需要时加载所需的数据。

您可以将cursorclass=MySQLdb.cursors.SSCursor放入connect函数中,这样可以解决问题。

请参阅How to efficiently use MySQLDB SScursor?