繁体   English   中英

Amazon RDS中的查询问题

[英]Problem with querying in Amazon RDS

嗨,我有一个连接到Amazon RDS计算机并检查新条目的python脚本。 我的脚本可以完美地在localhost上运行。 但是在RDS上,它不会检测到新条目。 一旦我取消脚本并再次运行,我将获得新条目。 为了测试,我像这样尝试了

cont = MySQLdb.connect("localhost","root","password","DB") 
cursor = cont.cursor() 
for i in range(0, 100):
    cursor.execute("Select count(*) from box")
    A = cursor.fetchone()
    print A 

在此过程中,当我添加新条目时,它不会检测到新条目,但是当我关闭连接并再次运行它时,我会得到新条目。 为什么这是我检查了缓存是否为0。我还缺少什么。

我已经在MySQL命令行客户端中看到了这种情况。

我的理解(来自其他人链接到该URL)是Python的API通常默默地创建事务: http : //www.python.org/dev/peps/pep-0249/

如果是这样,那么即使在另一个事务添加行之后,您的光标仍在查看数据的一致版本。 您可以尝试在for循环中执行cursor.rollback()以停止运行SELECT的隐式事务。

我得到了解决方案,这是由于Mysql中的隔离级别,我要做的就是

Set the default transaction isolation level transaction-isolation = READ-COMMITTED

我为此使用Django,所以我必须在Django数据库设置中添加它

'OPTIONS': {
                "init_command": "SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED"
                }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM