最近在工作中,调度脚本不断得从mysql中获取数据,但是数据库明明已经有新数据,获得的数据却是上一次的数据。
查阅了一下其他大神的文章,发现是是innodb的事务隔壁级别为可重复读(Repeatable Read)。
譬如我的查询语句并未提交,而数据库更新了数据,我查询语句获取的也只能是快照的信息(即尚未更新的数据)
pymysql默认的connect是没有设置自动commit的,所以以后要主动commit来防止这种情况。
conn = pymysql.connect(...)
cur = conn.ccursor()
sql = 'select ...'
cur.execute(sql)
conn.commit()
#执行了commit才会刷新事务。