恼人的SQLITE

      作为客户端应用程序,有时需要存储一些本地信息。之前一直使用ACCESS,一方面比较熟悉,另一方面毕竟就是微软的东西,不需要部署任何东西就可以使用。

      但也发现有两个问题比较严重,一是当程序崩溃或者计算机掉电后,可能出现数据库文件被损坏,导致无法打开的情况。如果没有安装Office环境的话,不容易恢复。虽然能够找到一些工具软件,但对于用户来说,还是比较麻烦的;二是数据库文件体积增长很快。当不断进行数据库信息变化时,由于数据库只能清空数据,但无法释放占用空间,导致数据库文件体积太大,时间长了就将磁盘空间消耗光了。

      基于以上问题,考虑使用SQLITE数据库,只需要打包一个dll文件就行。基于数据库本身的机制,它不会因为程序问题或掉电问题导致文件损坏,另外文件体积似乎也不大,数据库压缩非常简单,查询效率很高。因此打算在系统中使用SQLITE进行数据存储。

      但使用后发现一些问题,也相当地致命。一是在多线程下表现很差,基本上没办法使用。一般数据库互斥都是表级的,但SQLITE是文件级的,居然不能同时写两张表。连一张表读,另一张表写也做不到,简直无法接受。如果需要自己在外部加一堆锁来解决,那我觉得就是疯了。不光是说复杂,而且是无法满足需要。等于说一个库只能串行读写,这哪行啊。一种解决办法就是一个库一张表......

       另外,SQLITE的查询语句中,用LIKE模糊查询时,如果带中文,也不好用,能查出莫名其妙的记录。

不知道还有没有哪些轻量级的数据库,不存在这些问题呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐鹦鹉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值