本文共 444 字,大约阅读时间需要 1 分钟。
接上篇.
那么在Server端Cursor是如何实现的呢?
Cursor在MySQL-Server side是以内部临时表的形式存在的,将resultSet存储到Memory table或者MyISAM Table内(当resultset> ,tmp_table_size时或者memory不支持的字段类型时),因此第一就是临时表是无法控制的,即没办法添加索引等,因此对于大结果集来说获取行可能会比较慢,第二就是当高并发时可能造成MySQL Server Swap或者crash.
另外,对于Streaming mode:MySQL在进行streaming read的时候不能用该连接发出其他命令,否则会报异常,同时需要客户端处理的够快,因为在读取的过程中会读表进行锁定,因此此过程中不可写的.
看来使用cursor read还需谨慎..
本文转自MIKE老毕 51CTO博客,原文链接:http://blog.51cto.com/boylook/1308522,如需转载请自行联系原作者