首页 新闻 会员 周边 捐助

并发量大,sqlite数据库写入数据慢,有什么办法吗?

0
悬赏园豆:10 [已解决问题] 解决于 2015-02-13 16:02

一个应用同时在线人数比较多,每次访客访问都会自动插入一条数据到数据库(微信身份识别信息),这导致sqlite并发写入数据量比较大,我采用的是普通三层架构的形式写入数据,即insert into tablename values(......)  一条条插入,据说使用事务能提高写入效率(我也不知道是不是这个原因),不知真假,大家有没有更好的建议?

ludi的主页 ludi | 初学一级 | 园豆:5
提问于:2015-01-29 21:28
< >
分享
最佳答案
0

建议不要使用sqlite这种数据库频繁执行读写操作,效率低。

如果不换数据库的话提供一条思路,使用缓存:用户访问时的插入语句放在一个字符串集合列表中,列表数量达到一定级别 例如1000条时,之后再用事务插入数据,然后删除。我曾经用sqlite连续插入过十万级别的数据,使用事务比遍历可以将插入时间压缩到十分之一左右

收获园豆:10
nicky0227 | 小虾三级 |园豆:1069 | 2015-01-31 14:28

谢谢,我插入的是微信用户信息,是插入后要马上调取的,所以没办法累计到一定量再插入,我已经改成sql server了

ludi | 园豆:5 (初学一级) | 2015-01-31 18:28
其他回答(5)
0
dudu | 园豆:29568 (高人七级) | 2015-01-29 21:42
0

个人觉得sqlite并不太适合高并发,写入多的场景。事务能一定程度上提高写入效率。

幻天芒 | 园豆:37207 (高人七级) | 2015-01-30 09:09
0

sqlite不是用来提高新能,处理大量数据的数据库

刘宏玺 | 园豆:14020 (专家六级) | 2015-01-30 09:11
0

插入微信身份识别信息的目的是什么?如果插入没有副作用的话,请使用队列,然后在事务中插入,并设置 synchronous=OFF  count_changes=OFF journal_mode=MEMORY temp_store=MEMORY。

Launcher | 园豆:45050 (高人七级) | 2015-01-30 10:40
0

我也来凑下热闹,如果访客访问记录只是为了记录而已,可以另外安排一台服务器干这个活的。

普通三层结构是指PETSHOP那个骗死大学毕业生不偿命的三层结构吗?

并发量大?同时在线人数多!

生意好的话,向老板申请购买高性能服务器,你自己换个职位当CIO,

至于编程、服务器调优这些粗活就请个程序员好了。

 

这个是微信版的只差程序员吗?

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-01-30 10:48
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册