`
xyh
  • 浏览: 84083 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

MySQL和Postgresql全面对比

阅读更多
资料来自:http://zh.wikipedia.org/w/index.php?title=%E5%85%B3%E7%B3%BB%E5%9E%8B%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F%E5%AF%B9%E6%AF%94&variant=zh-cn
只是把Myql和PostgreSQL单独提取出来对比:

基本信息:
MySQL:
维护者:MySQL AB(现为Oracle公司) ;首次发布:1996年11月;最新稳定版:5.0.41(现在为5.1);许可:GPL 或 专有
PostgreSQL:
维护者:PostgreSQL Global Development Group;首次发布:1989年6月;最新稳定版: 8.2.4(现在为8.3);许可:BSD

操作系统:
MySQL:
支持WINDOWS,Linux,UNIX,MAC OS X,BSD
PostgreSQL:
以上操作系统都支持

基本功能:
MySQL:
MySQL支持ACID,关联完整性,数据库事务,Unicode多国语言(需要使用InnoDB格式数据表才能实现关联完整性约束与事务。 然而,InnoDB格式数据表仍旧允许存储的数据超出数据范围;一些观点认为它由此违反了ACID的完整性约束。)
PostgreSQL:
以上特征都支持

表和视图:
MySQL:
MySQL支持临时表,而物化视图,可以使用存储过程和触发器进行模拟
PostgreSQL:
PostgreSQL支持临时表,而物化视图,可以使用PL/pgSQL,PL/Perl,PL/Python或其他过程语言的存储过程和触发器模拟

索引:
MySQL:
MySQL的MyISAM表类型支持R-/R+ tree索引,而哈希索引只能用在MEMORY(即Heap), Cluster (NDB),InnoDB表类型
PostgreSQL:
全面支持R-/R+ tree索引,哈希索引,反向索引,部分索引,Expression索引,GiST, GIN(用来加速全文检索),从8.3版本开始支持位图索引
(注:InnoDB只能使用B树索引. MyISAM也可以使用B树索引,除此之外还有用于空间数据类型的R树索引.而MEMORY存储引擎默认使用哈希索引,同时也支持B树索引)

其它对象:
MySQL:
MySQL不支持数据域,支持存储过程,触发器,函数,外部调用,游标
PostgreSQL:
以上都支持

数据表分区:
MySQL:
从5.1版本开始支持四种分区:范围、哈希、混合、列表
PostgreSQL:
以上都支持

操作上来说,MySQL更容易操作;支持标准化方面,PostgreSQL做的更好;最大连接数方面,PostgreSQL表现稍好。

不过还是喜欢用MySQL,简单易用,它的Copy功能很有用,一般的中小型系统用它是比较轻量级的。
分享到:
评论
1 楼 thxg 2010-12-17  
请问PostgreSQL支持哈希、混合表分区方式吗?官方最新的9.0版文档里也只提到范围、列表两种。

相关推荐

Global site tag (gtag.js) - Google Analytics