关于SQLite和SQLCE的比较

最近在网上也看了很多关于SQLite和sqlce的文章,也算是对他们的了解。这两者存在的意义,主要面向的是嵌入式数据库,当然你要是把他作为桌面小程序数据持久的工具,当然也不错。

在这里就不再说你为什么排除这两者之外其他的数据库了,可能是项目的原因;可能只是想给客户演示,不想搞的太大;背景有很多,在这里说他作为桌面小程序的数据库而存在,该如何选择。

据说SQLite比sqlce的速度很快很多,要4到5倍,但是我没做数据性的测试,但是肯定的是SQLite应该确实比sqlce快吧。SQLite的sql语法基本上还是和sqlserver的语法比较接近的,如果你有关系型数据库sql语法的经验,对于SQLite的sql掌握是很快的。对于sqlce来说,你就完全不用改变了,他和sqlserver的sql语法是一样的,都是微软的产品。

说到这里,如果你考虑以后程序的升级和扩展,数据库方面的话,从sqlce升级到sqlserver要比SQLite容易些,起码在使用sql的语法上不用怎么变动。但是话又说回来,不管你选择哪个要升级到sqlserver你的程序肯定多多少少要改变点的吧。

以下是个人的经验,SQLite和sqlce都没有架构的概念了,我说的是像sqlserver的dbo一样的架构。另外,sqlce也没有视图的概念了,但是在SQLite中可以存在视图。同时SQLite没有外键的概念,而sqlce和sqlserver一样存在外键,不过有的版本的SQLite管理工具给SQLite数据库弄了外键,不过我在使用的时候总是不好用对于外键。还有点很大的区别,SQLite和Oracle一样默认是区分大小写的,而sqlce默认不区分大小写和sqlserver一样,呵呵微软就是另类。如果你习惯sqlserver的话,在定义SQLite数据库结构时为了不区分大小写可以在ddl后加上collate nocase,如果你细心的话会发现sqlserver的ddl一样都加了collate Chinese......一长串,也是针对是否区分大小写、重音之类的。

还有就是对于这俩数据库的管理工具,SQLite的有很多,如sqliteadmin、SQLiteExpertPers(个人版免费)、DatabaseNet等等,现在sqliteadmin基本上不再维护了,SQLiteExpertPers也不错,界面很漂亮,但是个人版提供的功能还是太少了,风格也不太习惯。另外就是DatabaseNet,这家伙是针对各种数据库的管理工具,对SQLite和sqlce都支持,并且个人版提供的功能都还不错,操作风格非常像sqlserver的官方管理工具ssms,如果以前你经常使用ssms,DatabaseNet是不错的选择。

另外还要考虑,如果你是给客户做的项目,到客户那里维护的时候携带那种管理工具最方便,以上我说了3中工具,前两种基本上只带安装后的两个文件就可以了,DatabaseNet需要framework4.0以上的版本的,你要考虑客户机器的环境。

最后就是使用这两种数据库的发布,SQLite只需要引用一个dll即可,而sqlce发布是需要安装个sqlce的运行时环境,多这一点麻烦。

下载sqliteadmin    访问密码 19cb

SQLiteExpertPersSetup   访问密码 fbf5

例子   访问密码 13c3

-------------------------------------------以下2014-6-20

1.其实SQLite的datetime数据类型并不像网上说的那么玄,我指的是用C#引用官网SQLite访问驱动System.Data.SQLite.dll,参数形式写sql,其实不用考虑SQLite内部是什么形式保存方式。

2.sqlce和SQLite相比,sqlce没有事务处理方式,也即不存在事务。如果都是批处理方式,同样不加事务,那么sqlce比SQLite快大概8倍;如果使用事务处理,SQLite比sqlce快大概1倍。当然还要根据你处理这批数据的大小。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章