微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

恼人的SQLITE

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

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

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

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

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

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

原文地址:https://www.jb51.cc/sqlite/199519.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐