【发布时间】:2011-02-17 00:21:09
【问题描述】:
我以前都是用mysql开发的,这周出现了用postgresql工作的机会,何乐而不为!
我总是被告知 postgresql 有一个更大的功能集。
我阅读了一些维基,但大多数信息都已经过时了。
我缺少哪些最好的功能?像部分索引等。
另外,我会错过mysql的一些东西吗?
【问题讨论】:
标签: sql mysql postgresql
我以前都是用mysql开发的,这周出现了用postgresql工作的机会,何乐而不为!
我总是被告知 postgresql 有一个更大的功能集。
我阅读了一些维基,但大多数信息都已经过时了。
我缺少哪些最好的功能?像部分索引等。
另外,我会错过mysql的一些东西吗?
【问题讨论】:
标签: sql mysql postgresql
最好的功能之一
用户定义的聚合:
CTE,支持递归
generate_series
窗口函数:
精湛的日期功能
数组支持
更丰富的数据类型
对主键进行分组时对主键的功能依赖(下一个版本,9.1)
用户自定义运算符
区别开
横向连接
使用 DOMAIN 的自定义数据类型
将整行传递给函数
【讨论】:
DOMAINs ;非常有用的 wrt 约束最小化。 (和标准,而不是 UDT)
别忘了 DDL,它也是交易安全的:
BEGIN;
ALTER TABLE foo DROP COLUMN bar;
ALTER TABLE foo ADD COLUMN baz INET;
COMMIT;
非常适合维护工作,即使您失去数据库连接或服务器出现故障,您也将始终拥有一致的数据库。
【讨论】:
除了迈克尔的列表(其中我最喜欢窗口函数)
select * from my_func(42)
CREATE INDEX idx1 ON some_table (some_column) WHERE some_flag = true)delete from some_table where 42 被视为错误,不会删除整个表【讨论】:
以下链接列出了许多主要数据库产品之间的功能差异:
【讨论】:
完全外连接。缺少这些是我对 MySQL 最大的抱怨之一。但是 Postgresql 支持它们。
【讨论】: