在 Python 上使用 MySQLdb 提交多个插入
Commit multiple inserts with MySQLdb on Python
我对我的 python 程序进行了性能分析,发现他们需要进行大量调用才能提交,并且花费了很多时间。
这样做是否性能更好:
db = MySQLcb.connect(...)
c = db.cursor(...)
c.execute('INSERT...)
c.commit()
c.execute('INSERT...)
c.commit()
或
db = MySQLcb.connect(...)
c = db.cursor(...)
c.execute('INSERT...)
c.execute('INSERT...)
c.commit()
知道我在做很多插入(数千)。
只要您使用的是 InnoDB 表,您可能会发现 this page 上的建议很有用。
大多数数据库都有批量插入的功能,MySQL也不例外。
如果您发现插入速度很慢,请确保您没有设置 autocommit
,因为这会强制围绕每个单独的操作进行事务处理。
我对我的 python 程序进行了性能分析,发现他们需要进行大量调用才能提交,并且花费了很多时间。
这样做是否性能更好:
db = MySQLcb.connect(...)
c = db.cursor(...)
c.execute('INSERT...)
c.commit()
c.execute('INSERT...)
c.commit()
或
db = MySQLcb.connect(...)
c = db.cursor(...)
c.execute('INSERT...)
c.execute('INSERT...)
c.commit()
知道我在做很多插入(数千)。
只要您使用的是 InnoDB 表,您可能会发现 this page 上的建议很有用。
大多数数据库都有批量插入的功能,MySQL也不例外。
如果您发现插入速度很慢,请确保您没有设置 autocommit
,因为这会强制围绕每个单独的操作进行事务处理。