PostgreSQL和DbLINQ:

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

總而言之,我對PostgreSQL這個數據庫印象相當不錯,而對DbLINQ比較失望。看來要在PG上面用LINQ,還是直接上ADO.NET Entity Framework比較好。