PostgreSQL和DbLINQ:
- PostgreSQL的名字也可以叫做Postgres,簡寫可以為PG
- PG是一個功能全面的開源數(shù)據(jù)庫(比那個連ACID都沒有的MySQL強(qiáng)多了),性能也很不錯,我把SQL Server 2008里面的8GB數(shù)據(jù)導(dǎo)入到PG里面后,發(fā)現(xiàn)查詢性能和數(shù)據(jù)插入性能都差不多,但是SQL Server好像還是要快一點點(非常不嚴(yán)謹(jǐn)?shù)臏y試,我這不超過10%,企業(yè)版)
- PG的backup文件真是超級的省空間,SQL Server導(dǎo)出的bak文件有7G多,而PG導(dǎo)出的只有幾百兆(這個數(shù)據(jù)庫里面重復(fù)數(shù)據(jù)多有關(guān)系),PG在備份的時候應(yīng)該是自動壓縮了
- PG的pgAdminIII雖然界面不是那么好看,但是很好用,能用SQL腳本干的事情它基本上都能干
- PG在Windows上面也支持SSPI集成認(rèn)證方式,這和SQL Server默認(rèn)的認(rèn)證方式是一樣的,可以很大的提升安全性(不用明文密碼了),但是我沒能配成功..
- 在PG里面unicode就是utf-8,這樣英文占一個字節(jié),中文占三個字節(jié),不如ucs-2。當(dāng)然ucs-2只能支持2^16個字符,不是真正的unicode。真正的unicode最好用ucs-4,可是這個字長又太大了。由于PG內(nèi)部不用ucs-2,所以和windows程序的匹配不是那么理想(NT的unicode就是ucs-2),要么干脆都用DBCS。但是.net里面又只有unicode的string... 所以還是C++好
- DbLINQ雖然已經(jīng)開發(fā)了兩年多了,但現(xiàn)在基本上還是沒法用,簡單的單表查詢還行,query稍微復(fù)雜一點點就不行了,group by都時常出問題,完全沒法用在實際的項目中(哪怕是純娛樂的項目)
- DbLINQ現(xiàn)在可下載的是0.18版本(一年前的),從SVN拖下來的是0.19,bug多多,比如PG里面表的主鍵必須命名為xxx_pkey的形式,不然就認(rèn)不到。外鍵則只支持單列的外鍵,多列的話不能直接生成C#,只能生成一個錯誤的DBML,然后在VS里面修改DBML之后再生成C#,這樣才能用。為這些bug真是浪費了好多時間(重建主鍵就花了幾個小時)
- DbLINQ的很多example里面都是一堆注釋,看也看不懂,基本上沒啥用處
總而言之,我對PostgreSQL這個數(shù)據(jù)庫印象相當(dāng)不錯,而對DbLINQ比較失望。看來要在PG上面用LINQ,還是直接上ADO.NET Entity Framework比較好。