批量插入数据:先 flush()最后一次性 commit(),和每次 commit()速度差别大吗?
for i in range(10000):
test = TEST(number = i)
db.session.add(test)
db.session.flush()
db.session.commit()
for i in range(10000):
test = TEST(number = i)
db.session.add(test)
db.session.commit()
1
gamexg 2018-03-08 12:11:56 +08:00 via Android
每次 commit 需要至少写一次硬盘,硬盘是很多数据库的瓶颈。
|
2
jingniao 2018-03-08 12:15:06 +08:00
flush 的效果我不太清楚
但每插入一条数据就 commit 肯定很慢很慢 一般的单机关系型数据库的每秒事务数普遍高不到哪里去,跟磁盘 iops 有很大关联 |
3
miniyao OP |