一个应用同时在线人数比较多,每次访客访问都会自动插入一条数据到数据库(微信身份识别信息),这导致sqlite并发写入数据量比较大,我采用的是普通三层架构的形式写入数据,即insert into tablename values(......) 一条条插入,据说使用事务能提高写入效率(我也不知道是不是这个原因),不知真假,大家有没有更好的建议?
建议不要使用sqlite这种数据库频繁执行读写操作,效率低。
如果不换数据库的话提供一条思路,使用缓存:用户访问时的插入语句放在一个字符串集合列表中,列表数量达到一定级别 例如1000条时,之后再用事务插入数据,然后删除。我曾经用sqlite连续插入过十万级别的数据,使用事务比遍历可以将插入时间压缩到十分之一左右
谢谢,我插入的是微信用户信息,是插入后要马上调取的,所以没办法累计到一定量再插入,我已经改成sql server了
个人觉得sqlite并不太适合高并发,写入多的场景。事务能一定程度上提高写入效率。
sqlite不是用来提高新能,处理大量数据的数据库
插入微信身份识别信息的目的是什么?如果插入没有副作用的话,请使用队列,然后在事务中插入,并设置 synchronous=OFF count_changes=OFF journal_mode=MEMORY temp_store=MEMORY。
我也来凑下热闹,如果访客访问记录只是为了记录而已,可以另外安排一台服务器干这个活的。
普通三层结构是指PETSHOP那个骗死大学毕业生不偿命的三层结构吗?
并发量大?同时在线人数多!
生意好的话,向老板申请购买高性能服务器,你自己换个职位当CIO,
至于编程、服务器调优这些粗活就请个程序员好了。
这个是微信版的只差程序员吗?