已经很长时间没用过torndb了。因为前两天写一个微信相关的h5小游戏,涉及到mysql存储用户的数据,也不是很复杂,所以用torndb。简单总结几个需要注意的点。

1、max_idle_time

默认max_idle_time是7*3600,因为mysql服务器的默认wait_time=28800。这个请一定根据自己的mysql服务器的配置修改。否则经常出现”MySQL server has gone aways”错误也是很糟心的。

2. charset

默认是utf8,但是现在emoji流行所以一般都修改为 utf8mb4了。当然了,请检查你的数据库支持情况。

3. autocommit

默认设置了 autocommit=1,所以如果想要使用 SELECT … FOR UPDATE 或者 SELECT … LOCK IN SHARE MODE 之类锁的话。请务必要先关闭autocommit。

try:
    conn.execute("set autocommit=0")
    # do anything you want
finally:
    # 务必在finally中把autocommit设回来。
    comm.execute("set autocommit=1")