关于Sqlite3 插入速度的问题。。。

dxfield 2010-03-29 12:29:27

请问, Sqlite3 的插入瓶颈为多少呢?小弟写了一个东西,每秒钟能产生 70000条,现在数据库每秒只能写入 2000条
左右,请问有什么优化的方案么? 每秒 2000 条对于 Sqlite3 来说,究竟是慢还是快呢???
...全文
770 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zzmwmh 2010-05-06
  • 打赏
  • 举报
回复
他现在每秒2000应该已经是开了事务的了,没开每秒20还差不多
iihero_ 2010-05-06
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 robotdeng 的回复:]

网上有人做过评测,在事务里面更新,0。7秒可以插入25000条记录。可能是你的代码效率有问题,还有我很好奇,什么应用要1秒处理7W条记录?假定10条记录1K容量,1秒就是7M,一小时25G。

Test 2: 25000 INSERTs in a transaction
BEGIN;
CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100)……
[/Quote]

他这每秒2000条,可能还跟具体的表结构有关系。
希望楼主把表结构帖出来
robotdeng 2010-05-06
  • 打赏
  • 举报
回复
网上有人做过评测,在事务里面更新,0。7秒可以插入25000条记录。可能是你的代码效率有问题,还有我很好奇,什么应用要1秒处理7W条记录?假定10条记录1K容量,1秒就是7M,一小时25G。

Test 2: 25000 INSERTs in a transaction
BEGIN;
CREATE TABLE t2(a INTEGER, b INTEGER, c VARCHAR(100));
INSERT INTO t2 VALUES(1,298361,'two hundred ninety eight thousand three hundred sixty one');
... 24997 lines omitted
INSERT INTO t2 VALUES(24999,447847,'four hundred forty seven thousand eight hundred forty seven');
INSERT INTO t2 VALUES(25000,473330,'four hundred seventy three thousand three hundred thirty');
COMMIT;

SQLite 3.3.3 (sync): 0.764
SQLite 3.3.3 (nosync): 0.748
SQLite 2.8.17 (sync): 0.698
SQLite 2.8.17 (nosync): 0.663
PostgreSQL 8.1.2: 16.454
MySQL 5.0.18 (sync): 7.833
MySQL 5.0.18 (nosync): 7.038
FirebirdSQL 1.5.2: 4.280
王帆 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fsse2000 的回复:]

Sqlite 插入之前,先開啟事務, 最后 Commit 這樣速度是沒有加是的 N倍以上。。

速度差別非常大。
[/Quote]
说得不错。
iihero_ 2010-04-18
  • 打赏
  • 举报
回复
不错,批量写数据之前,开启事务,整个写结束之后,提交。这是sqlite的一个独特的地方
fsse2000 2010-04-15
  • 打赏
  • 举报
回复
Sqlite 插入之前,先開啟事務, 最后 Commit 這樣速度是沒有加是的 N倍以上。。

速度差別非常大。
header230 2010-03-29
  • 打赏
  • 举报
回复
本来sqlite的插入的速度就不是特别的快,你可以用事物来处理。

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧