遇到过的几类问题:
- 如果保持长连接,即使在mysql数据库默认的connection timeout内,也有可能出现"mysql server has gone away"。还有另一种情况,当SQL语句本身有问题的时候,也会出现这个错误。其实不是非常频繁的读写和插入,每次执行前connect,创建cursor,执行完后双双关闭,既不会对性能产生影响,也不会出现这种错误,省略了catch后重连的烦恼。
- 关于select的效率,可以发现:当一次select的数量比较大的时候,返回变的很慢,这时候可以采用sscursor的方式,和普通cursor方式的区别就是记录是保存在server端,而不是client端,读的时候for ... in .. + yield组合,非常方便。测试13000+条记录能省两秒的样子。
- with的写法真的很方便啊,来自sf: http://*.com/questions/8067690/context-manager-for-pythons-mysqldb!
然后就整理了一下下面的代码,丢到github上以后备用,欢迎指出问题啊:
地址在这里:https://github.com/fayewu/python_common_module/blob/master/sql_ope.py