我有两个并发进程:
1.)Writer-定期向MySQL数据库中插入新行(10-20行/秒)
2.)读卡器-从插入的同一个表中读取
我注意到Reader进程似乎只看到数据库在其启动时的快照。在启动之前没有发现插入。如果我关闭Reader进程并重新启动它(但让Writer运行),它有时(但不总是)看到更多的数据,但似乎再次获得了数据库的时间点视图。在
我在每次插入后运行一次提交(下面的代码片段)。我调查了这是否是变更缓冲/池的功能,但是做了一个“设置@@global.innodb_change_buffering=无“没有效果。另外,如果我进入MySQL workbench,我可以查询由编写器插入的最新数据。因此,这似乎是如何设置Python/MySQL连接的函数。在
我的环境是:
Windows 7系统
MySQL5.5.9版
Python2.6.6—EPD 6.3-1(32位)
MySQL python连接器
插入代码为:
def insert(dbConnection, statement):
cursor = dbConnection.cursor()
cursor.execute(statement)
warnings = cursor.fetchwarnings()
if warnings:
print warnings
rowid = []
else:
rowid = cursor.lastrowid
cursor.close()
dbConnection.commit()
return rowid
读卡器代码是:
^{pr2}$
阅读侧是什么样子的?在
我打赌这是读端隔离级别的问题。很可能您的read连接正在获取一个隐式事务,默认的InnoDB隔离级别是:
Repeatable Read
尝试发布:
在阅读方面。在
相关问题 更多 >
编程相关推荐