我有一个连接到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中的某种缓存或某些东西吗?
在8之前的MySQL版本中,你可以做到
SELECT SQL_NO_CACHE COUNT(*) FROM table
从查询中获取未缓存的结果。
在版本8及更高版本中没有必要;查询缓存功能已删除。