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で時間がかかりすぎるプロセスに対して、ある種のスロットルまたは優先度の低下はありますか?これを回避する方法はありますか?
編集:AmazonEC2でMicroInstanceを使用しています。空のテーブルで挿入を行っているため、テーブルサイズの作成に問題はありません。