我有一个连接到MySQL数据库的python程序(使用PyMySQL)。 在我的程序中,我有一个循环检查我的一张桌子的长度。
sql = "SELECT COUNT(*) FROM resourciter.views"
sqlCursor.execute(sql)
viewPointCount = sqlCursor.fetchone()[0]
print("(%s data points)" % str(viewPointCount))
但是,每次运行,即使我知道它应该更改,它也会返回相同的值
例如。
(46 data points)
(46 data points)
(46 data points)
(46 data points)
...
我尝试在每个循环中关闭并重新打开sql连接,然后突然正常工作
例如。
(46 data points)
(47 data points)
(48 data points)
(49 data points)
...
显然,这是非常糟糕的做法,并且我确信它无需关闭并重新打开连接就可以正常工作。
我需要清除的sqlCursor中是否存在某种缓存?
答案 0 :(得分:1)
在8之前的MySQL版本中,您可以
SELECT SQL_NO_CACHE COUNT(*) FROM table
从查询中获取未缓存的结果。
在版本8及更高版本中没有必要;查询缓存功能已删除。