關於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倍。當然還要根據你處理這批數據的大小。


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