Postgre s 正獲得越來越多的關(guān)注 - 理所應(yīng)當(dāng)?shù)摹O?Postgre s 這樣開放的數(shù)據(jù)庫系統(tǒng)正在和大型、昂貴、不規(guī)則的“企業(yè)級”系統(tǒng),例如 SQL Server,Oracle 形成正面的交鋒,提供同等的功能,但更好用。在所有這些系統(tǒng)中, Postgre s 是最智能,最快速和功能最
Postgres 正獲得越來越多的關(guān)注 - 理所應(yīng)當(dāng)?shù)摹O?Postgres 這樣開放的數(shù)據(jù)庫系統(tǒng)正在和大型、昂貴、不規(guī)則的“企業(yè)級”系統(tǒng),例如 SQLServer,Oracle 形成正面的交鋒,提供同等的功能,但更好用。在所有這些系統(tǒng)中,Postgres 是最智能,最快速和功能最全面的。
Postgres.app
最近有一些關(guān)于 Postgres.app 的風(fēng)言風(fēng)語。大部分人不理解 Postgres.app,我來簡單解釋一下吧。
Postgres 可以配置很多有趣的選項,例如運行地球空間信息索引(PostGIS),創(chuàng)建 Ruby 和 JavaScript 方法,擴展查詢引擎以支持遠(yuǎn)程數(shù)據(jù)例如 GMail.這些功能都需要從源代碼編譯,這是一個比較痛苦的過程,即使你在 Mac 上使用
Homebrew.
Homebrew 根據(jù)常用的配置抓取源碼并編譯。Postgres.app 是預(yù)先編譯好,并且作為一個守護進程運行。你可以根據(jù)需要打開或者關(guān)閉。你只需要下載它,拖動到你的應(yīng)用目錄就搞定了。
對比一下 SQL Server 和 Oracle 的安裝過程吧!
這明顯要迷人很多。如果你使用的是 Mac,你還可以使用 Navicat.有一個免費的版本,你也可以先玩一下他們的demo.
重新認(rèn)識一下這位老朋友
PostgreSQL 已經(jīng)存在了很長時間了。你看到這里也許在想這操蛋的名字到底是誰取的?Tom Lane 的解釋如下:
軟件的名字是 PostgreSQL 或者 Postgres,不是 Postgre……的確,1996年決定叫它PostgreSQL 而不是更簡單的 Postgres
應(yīng)該是這個項目到目前為止犯的唯一一個錯誤。但現(xiàn)在想改已經(jīng)太晚。
Postgres 是從一個非常古老的數(shù)據(jù)庫系統(tǒng) Ingres 移植而來,目的是創(chuàng)建一個可插拔的,可伸縮的快速數(shù)據(jù)庫系統(tǒng),并且是用戶友好而智能。“Postgres”這個名字似乎是在影射之前的項目“After
Ingres”.
誰在乎呢?
這一點很關(guān)鍵 - 不是很多人。隨著 PHP 的興起,“更友好”的 MySQL 平臺被廣泛的采用,而不是更嚴(yán)謹(jǐn),基于規(guī)則的 Postgres
系統(tǒng)。“更友好”在我看來是“更愚蠢”.
好吧,我承認(rèn)我的話很傷人,我收回。這一段視頻是我在 Tekpub 上發(fā)布的,名字叫做“MySQL 的危險”.假如你不想看完整段視頻(譯者注:天朝的我們沒法看),我來做一個總結(jié):
MySQL 可能會忽略你的默認(rèn)值或者限制,為了“幫助你”不要太嚴(yán)謹(jǐn)
假如字段不能為空的話,它不能向非空字段插入 “”
假如字段不能為空的話,它會插入無意義的日期例如“0000-00-00”
1/0 返回的是 NULL
“THIS IS NOT A NUMBER”/0 返回的是 NULL
假如你向一個長度限制為2的字段插入1000的話,它會幫你四舍五入成99
這些就是你要小心使用 MySQL 的地方。它默認(rèn)不會保護你的數(shù)據(jù),而是以犧牲數(shù)據(jù)完整性來嘗試讓你通過。這在我看來很愚蠢。
如果這些你都不在乎的話,我還有一個詞要送給你:Oracle.
快速,可擴展,有趣
Postgres 有很多的功能,大部分人可能都不知道。它有很多句法上的技巧:
關(guān)鍵詞“Infinity”意味著比任何輸入的數(shù)字要大。這可以是數(shù)字,也可以是日期,也可以設(shè)置正負(fù)。
可以識別“today”,“tomorrow”,“yesterday”等關(guān)鍵詞
令人驚訝的數(shù)據(jù)類型,例如 Arrays,IP地址(支持 IPv6)。還有空間類型,例如線,正方形,圓形
數(shù)據(jù)表繼承,這是一個很奇怪的功能,可以讓你的一張表繼承另外一張表
自帶自然語言全文索引
更重要的是 Postgres 還非常的快速并且可擴展。我和我的 DBA 朋友 Rob Sullivan 做了一些測試,裝載 StackOverflow 600萬條的文本數(shù)據(jù)。我們用的是 Windows 的機器,在很多情況下 Postgres
秒殺了 SQL Server.
雖然 SQL Server 也可以為數(shù)據(jù)表分區(qū),但是你必須付費,更何況 Postgres
的性能更好,并且索引更小。
如果這些還不夠的話,Postgres 默認(rèn)支持 TOAST 數(shù)據(jù)表。這個名字很奇怪,是“Automatic Table Compression”的縮寫。我在本文最后的 demo 中展示了這一點。還有,Postgres
會在你的磁盤上壓縮數(shù)據(jù),減少 RAM 和磁盤的使用量。
這個功能使得 StackOverflow 的 dump 數(shù)據(jù)從24G降到了6G!記住這些都是Postgres免費提供的,而使用 SQL Server
你就必須購買企業(yè)授權(quán)。
還有五件你不知道的事情
關(guān)于 Postgres 還有很多可以寫,我還是想貼一下我在 NDC 2012 上的演講 “5 Things You Didn't Know About PostgreSQL”:
通過 Foreign Data Wrappers 進行 Twitter 查詢
使用 Google 的 V8 引擎編寫 JavaScript 函數(shù)
秒殺 MySQL 的那些雕蟲小技
避免鎖以及自帶的快照功能
數(shù)據(jù)表繼承
瘋狂的數(shù)據(jù)類型
希望你會喜歡。
聲明:凡注明CIO時代網(wǎng)(www.ciotimes.comwww.ciotimes.com),違者本網(wǎng)將依法追究責(zé)任。
轉(zhuǎn)至http://www.ciotimes.com/infrastructure/sjk/68116.html
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com