在调用 commit 之前,我执行了以下代码 25 次(非常简略)。
def query_and_insert(conn):
c = conn.cursor()
result = c.execute("SELECT ...")
result = modify_result(result)
c.execute("INSERT ...".format(result))
result.close()
if __name__ == "__main__":
conn = MySQLDB.connect(...)
loop 25 times:
query_and_insert(conn)
conn.commit()
conn.close()
在前 15 个左右的查询之后,速度显着降低(从每个查询/插入组合 < 1 秒到 > 20 秒)。问题绝对不是我正在执行的查询的复杂性。将最后 10 个查询移到开头使它们运行得同样快,然后最后一个查询再次显着减慢。
在 AWS 上耗时过长的进程是否存在某种限制或优先级降低?有没有办法解决?
编辑:我们在 Amazon EC2 上使用 MicroInstance。构建表大小没有问题,因为我们在空表上进行插入。