我的SQL数据库有大约200k个表,我正在制作一个简单的程序来从每个表中获取一些数据。查询类似于:
cur.execute("SELECT * FROM `%s`" % (tablename))
当我遍历表名列表并执行此查询时,每次都需要更长时间。在开始时,运行查询所需的时间不到1毫秒,但到最后每个查询最多需要70毫秒。
可能导致这种放缓的原因是什么?如果我让程序在中途休眠10秒钟,那么查询仍然和睡眠前一样慢。唯一让它快速恢复的是重启程序。
感谢您的帮助
答案 0 :(得分:0)
[根据要求发布答案]
请参阅评论以获取一些有用的建议。
对于实际的短期解决方案,您可以尝试每1000个表关闭并重新打开连接。
但根本原因是你有太多的表,如果可能的话你应该解决这个问题。
答案 1 :(得分:0)
这可以通过每1000个请求重新连接到数据库来解决。