Jac*_*ack 5 mysql mysql-python database-cursor
我正在使用 python-mysql(MySQLdb) 来查询 Mysql 服务器。游标模块有两种:一种是客户端游标,如:
cursor = db.cursor(MySQLdb.cursors.DictCursor)
Run Code Online (Sandbox Code Playgroud)
另一种是服务器端游标,如:
cursor = db.cursor(MySQLdb.cursors.SSDictCursor)
Run Code Online (Sandbox Code Playgroud)
文档说服务器端游标意味着Mysql会在mysql服务器端缓存一些结果,然后将它们发送到客户端。我对此很困惑,比方说,如果我想杀死一台 mysql 服务器,我可以使用多个服务器端游标,然后 mysql 就会因为内存耗尽而死掉。此外,服务器大小光标有任何意义吗?默认情况下,Mysql 机制是当 mysql 检索到一条记录时,它会立即将其发送给客户端。缓存结果然后将其发送出去是否有意义?
我真的不知道应该使用哪个游标,客户端游标还是服务器端游标?
我不是最伟大的数据库忍者,但很多时候,服务器软件中内置的东西在一般或常见情况下并没有多大用处,但在某个小角落情况下却真的非常非常棒。
Nimdil 给了你一个,但这是另一个:
http://techualization.blogspot.com/2011/12/retriving-million-of-rows-from-mysql.html
此人声称 SScursor 更像是一个“无缓冲”游标。
这似乎与此相矛盾:
http://dev.mysql.com/doc/refman/5.7/en/cursor-restrictions.html
不管怎样,服务器端游标的使用似乎是在处理数据集时,这样您的查询可能会压垮客户端。
| 归档时间: |
|
| 查看次数: |
3391 次 |
| 最近记录: |