2011-02-17 50 views
6

我曾經用mysql開發過一切,本週有機會與postgresql一起工作出現,爲什麼不呢!從mysql移動到postgresql,我失蹤的最佳功能?

我總是被告知postgresql有一個更大的功能集。
我看過一些維基,但大部分信息都過時了。

我失蹤的最佳功能是什麼?像部分索引等。
另外,我會錯過從MySQL的東西?

回答

16
+0

如果你能談論一下爲什麼你喜歡「表達式索引」,「用戶定義的聚合」,「更豐富的數據類型」,「數組支持」等,這將是非常好的/有用的。已經使用過去的那些 – arnorhs 2011-02-17 01:01:10

+0

夥計,我很害怕!從字面上看!有些事情我從來沒有想過在查詢中可以做到!還有其他「更易於使用」的功能? – arthurprs 2011-02-17 01:08:45

6

而且不要忘了DDL,它也是交易安全:

BEGIN; 
    ALTER TABLE foo DROP COLUMN bar; 
    ALTER TABLE foo ADD COLUMN baz INET; 
COMMIT; 

偉大的維護工作,你將永遠有一個一致的數據庫,即使你什麼時候丟失數據庫連接或服務器故障。

6

除了邁克爾的列表(其中我喜歡窗口函數最)

  • 檢查約束
  • 表功能(即,可以使用在這樣select * from my_func(42)
  • 局部索引函數(CREATE INDEX idx1 ON some_table (some_column) WHERE some_flag = true
  • 被零除是錯誤
  • delete from some_table where 42被認爲是錯誤並且不會刪除整個表
  • ,你可以在一個UPDATE子查詢或DELETE從同一個表中選擇你要更新
  • 更聰明查詢優化
  • 延遲約束(較少使用的,但是當你需要他們,他們是真正的幫助)
  • 外鍵被評估爲整個語句不是逐行
  • 全文搜索和空間擴展上的事務表
  • EXCEPT
1

全外連接。缺乏這些是我對MySQL最大的抱怨之一。但Postgresql支持它們。