50w 调数据插入 real 要大约一个小时?

2016-07-11 16:33:27 +08:00
 chengkai1853

sqlite3 的数据库中有大约 50w 条数据,我在 ios 项目中想用 realm 做数据库,于是用 FMDB 去读,然后循环插入 realm 数据库中,我在模拟器上跑,都半个小时了,大约跑了一半。我用 ruby 在电脑上跑的时候也是蛮久的。数据库有这么慢么?看文件总大小也才 20M 左右。第一次跑 50w 级别的数据库,没想到这么慢!说下大家的情况啊

2713 次点击
所在节点    iOS
4 条回复
peter999
2016-07-11 16:38:33 +08:00
有批量插入的事务吗,有的话不要一条条插入,应该可以提交速度
chengkai1853
2016-07-11 16:43:21 +08:00
@peter999 没有用到事务,我试试
billlee
2016-07-11 22:03:42 +08:00
批量插入时可以用 wal 模式避免每个事务 fsync 一次
chengkai1853
2016-07-12 10:39:28 +08:00
@peter999 @billlee 非常感谢,事务 10000 条提交一次,基本就四分钟左右就能跑完了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/291753

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX