[问题] Sqlite设定autocommit=false依然很慢

楼主: comodore (Commodore)   2017-06-09 23:14:33
请问大家,
数据库如果需要写入几十万笔的新增与删除,
已经将auto commit设定为false了,
也使用preparedstatement搭配addbatch了
但还是非常慢, 需要大概跑个几十分钟,
看档案总管, 在执行时会有一个journal档,
会是因为那个档的buffer太小的关系吗?
还是I/O硬盘读小速度太慢呢?
谢谢
作者: zop (ㄞ肝ㄞ肝~一元二十罐~)   2017-06-10 11:05:00
sqlite适合跑几十万笔吗?
作者: pttnews (PTT新闻)   2017-06-12 14:14:00
1F正解
楼主: comodore (Commodore)   2017-06-12 16:31:00
所以是选错DB的问题吗? 谢谢
作者: adrianshum (Alien)   2017-06-14 12:20:00
不auto commit 不代表不commit. 每完成一部份还是commit 一下吧,不然rollback segment (不晓得SQLite 相当的东西叫什么)太大肯定慢。另外你batch size 多大?add 一个然后立刻就executebatch 肯定没帮助
楼主: comodore (Commodore)   2017-06-21 18:18:00
全部add完之后, 才一次加执行整个batch的

Links booklink

Contact Us: admin [ a t ] ucptt.com