事實上之前有很長一段時間都在糾結(jié)是否有必要好好學(xué)習(xí)它,但是始終都沒有一個很好的理由說服自己。甚至是直到這個項目最終決定選用PostgreSQL時,我都沒有真正意識到學(xué)習(xí)它的價值,當(dāng)時只是想反正和其它數(shù)據(jù)庫差不多,能用就行了。然而有一天晚上,自己也不知道為什么,躺在床上開始回想整個項目的實施過程,想著想著就想到了數(shù)據(jù)庫選型這一問題上了。事情是這樣的,最初客戶將他們的產(chǎn)品目標(biāo)定位為主打中型規(guī)模,同時也要在一定程度上支持小型規(guī)模。鑒于此,我們?yōu)樗麄兲峁┑姆桨甘侵行鸵?guī)模的數(shù)據(jù)庫選用Oracle,小型規(guī)模的選定MySQL,在經(jīng)過多輪商談之后這個方案通過了。然而隨著項目的深入,客戶突然有一天提出,由于成本和市場推廣等問題,該產(chǎn)品的數(shù)據(jù)庫部分需要進(jìn)行一定的調(diào)整,調(diào)整的結(jié)果是中型規(guī)??梢酝瑫r支持Oracle和MySQL,而小型規(guī)模則要同時支持MySQL和PostgreSQL,原因非常簡單,PostgreSQL是純免費的數(shù)據(jù)庫產(chǎn)品。聽到這個消息之后,我當(dāng)時就非常惱火,因為當(dāng)初為了保證運行時效率(國標(biāo)),我們的數(shù)據(jù)庫訪問層是完全基于數(shù)據(jù)庫供應(yīng)商提供的原始C接口開發(fā)的,甚至都沒有考慮ODBC提供的原始C接口,以防在轉(zhuǎn)換中失去效率,或是ODBC本身為了強(qiáng)調(diào)通用性而不得不犧牲某些數(shù)據(jù)庫的優(yōu)化特征,如批量插入、批量讀取等。最后的結(jié)果顯而易見,客戶就是上帝,上帝的意見就是真理,這樣我們就不得不基于現(xiàn)有的訪問層接口又重新開發(fā)了一套支持PostgreSQL原生C接口的驅(qū)動。然而隨著對PostgreSQL的不斷學(xué)習(xí),對它的了解也在逐步加深,后來發(fā)現(xiàn)它的功能還是非常強(qiáng)大的,特別是對GIS空間數(shù)據(jù)的支持就更加的吸引我了。于是就在腦子里為MySQL和PostgreSQL做了一個簡單的對比和分析,最后得出一個結(jié)論,相比MySQL,PostgreSQL并沒有什么剛性的缺點,但是它的純免費特征確實是MySQL無法比擬的。它完全可以成為軟件產(chǎn)品解決方案中非常重要的一環(huán),特別是針對很多中低端用戶,不僅在使用中不會感到任何差異,而且還能節(jié)省一部分額外的費用,這對于產(chǎn)品的市場推廣是非常有幫助的。想到這里便決定起而行之,花上一段時間好好的學(xué)習(xí)和研究它,于是就有了這個系列的博客。 好了,閑淡扯的差不多了,讓我們還是言歸正傳吧!
PostgreSQL學(xué)習(xí)手冊(數(shù)據(jù)表) http://www.cnblogs.com/stephen-liu74/archive/2011/12/16/2290803.html 一、表的定義 二、系統(tǒng)字段 三、表的修改 四、權(quán)限
PostgreSQL學(xué)習(xí)手冊(模式Schema) http://www.cnblogs.com/stephen-liu74/archive/2011/12/18/2291526.html
PostgreSQL學(xué)習(xí)手冊(表的繼承和分區(qū)) http://www.cnblogs.com/stephen-liu74/archive/2011/12/18/2291814.html 一、表的繼承 二、分區(qū)表
PostgreSQL學(xué)習(xí)手冊(常用數(shù)據(jù)類型) http://www.cnblogs.com/stephen-liu74/archive/2011/12/19/2293602.html 一、數(shù)值類型 二、字符類型 三、日期/時間類型 四、布爾類型 五、位串類型 六、數(shù)組 七、復(fù)合類型
PostgreSQL學(xué)習(xí)手冊(函數(shù)和操作符<一>) http://www.cnblogs.com/stephen-liu74/archive/2011/12/19/2294071.html 一、邏輯操作符 二、比較操作符 三、數(shù)學(xué)函數(shù)和操作符 四、字符串函數(shù)和操作符 五、位串函數(shù)和操作符
PostgreSQL學(xué)習(xí)手冊(函數(shù)和操作符<二>) http://www.cnblogs.com/stephen-liu74/archive/2011/12/20/2294643.html 六、模式匹配 七、數(shù)據(jù)類型格式化函數(shù) 八、時間/日期函數(shù)和操作符
PostgreSQL學(xué)習(xí)手冊(函數(shù)和操作符<三>) http://www.cnblogs.com/stephen-liu74/archive/2011/12/20/2295273.html 九、序列操作函數(shù) 十、條件表達(dá)式 十一、數(shù)組函數(shù)和操作符 十二、系統(tǒng)信息函數(shù) 十三、系統(tǒng)管理函數(shù)
PostgreSQL學(xué)習(xí)手冊(索引) http://www.cnblogs.com/stephen-liu74/archive/2011/12/22/2298182.html 一、索引的類型 二、復(fù)合索引 三、組合多個索引 四、唯一索引 五、表達(dá)式索引 六、部分索引 七、檢查索引的使用
PostgreSQL學(xué)習(xí)手冊(事物隔離) http://www.cnblogs.com/stephen-liu74/archive/2011/12/25/2300863.html
PostgreSQL學(xué)習(xí)手冊(性能提升技巧) http://www.cnblogs.com/stephen-liu74/archive/2011/12/25/2301064.html 一、使用EXPLAIN 二、批量數(shù)據(jù)插入
PostgreSQL學(xué)習(xí)手冊(服務(wù)器配置) http://www.cnblogs.com/stephen-liu74/archive/2011/12/26/2302241.html 一、服務(wù)器進(jìn)程的啟動和關(guān)閉 二、服務(wù)器配置 三、內(nèi)存相關(guān)的參數(shù)配置
PostgreSQL學(xué)習(xí)手冊(角色和權(quán)限) http://www.cnblogs.com/stephen-liu74/archive/2011/12/26/2302639.html 一、數(shù)據(jù)庫角色 二、角色屬性 三、權(quán)限 四、角色成員
PostgreSQL學(xué)習(xí)手冊(數(shù)據(jù)庫管理) http://www.cnblogs.com/stephen-liu74/archive/2011/12/27/2303510.html 一、概述 二、創(chuàng)建數(shù)據(jù)庫 三、修改數(shù)據(jù)庫配置 四、刪除數(shù)據(jù)庫 五、表空間
PostgreSQL學(xué)習(xí)手冊(數(shù)據(jù)庫維護(hù)) http://www.cnblogs.com/stephen-liu74/archive/2011/12/27/2304155.html 一、恢復(fù)磁盤空間 二、更新規(guī)劃器統(tǒng)計 三、VACUUM和ANALYZE的示例 四、定期重建索引 五、觀察磁盤使用情況
PostgreSQL學(xué)習(xí)手冊(系統(tǒng)表) http://www.cnblogs.com/stephen-liu74/archive/2011/12/28/2305415.html 一、pg_class 二、pg_attribute 三、pg_attrdef 四、pg_authid 五、pg_auth_members 六、pg_constraint 七、pg_tablespace 八、pg_namespace 九、pg_database 十、pg_index
PostgreSQL學(xué)習(xí)手冊(系統(tǒng)視圖) http://www.cnblogs.com/stephen-liu74/archive/2011/12/29/2306115.html 一、pg_tables 二、pg_indexes 三、pg_views 四、pg_user 五、pg_roles 六、pg_rules 七、pg_settings
PostgreSQL學(xué)習(xí)手冊(客戶端命令<一>) http://www.cnblogs.com/stephen-liu74/archive/2011/12/29/2306493.html 零、口令文件 一、createdb 二、dropdb 三、reindexdb 四、vacuumdb 五、createuser 六、dropuser
PostgreSQL學(xué)習(xí)手冊(客戶端命令<二>) http://www.cnblogs.com/stephen-liu74/archive/2011/12/30/2307813.html 七、pg_dump 八、pg_restore 九、psql
PostgreSQL學(xué)習(xí)手冊(SQL語言函數(shù)) http://www.cnblogs.com/stephen-liu74/archive/2012/01/04/2312194.html 一、基本概念 二、基本類型 三、復(fù)合類型 四、帶輸出參數(shù)的函數(shù) 五、返回結(jié)果作為表數(shù)據(jù)源 六、返回集合的SQL函數(shù) 七、多態(tài)的SQL函數(shù) 八、函數(shù)重載
PostgreSQL學(xué)習(xí)手冊(PL/pgSQL過程語言) http://www.cnblogs.com/stephen-liu74/archive/2012/01/05/2312759.html 一、概述 二、PL/pgSQL的結(jié)構(gòu) 三、聲明 四、基本語句 五、控制結(jié)構(gòu) 六、游標(biāo) 七、錯誤和消息
|