`
hlsps
  • 浏览: 32688 次
社区版块
存档分类
最新评论

Mysql与Postgresql数据性能比较--转贴

阅读更多
数据量今后会很大/你无法预测 数据量会多大,建议换postgresql.

mysql 在一定量数据后(一般观点是 mysql 单表 200-300万 时性能最好,数据再多性能就开始下降),性能下降很快,且大数据量情况下,mysql 稳定性/数据可靠性是问题。

postgresql 8.2 的官方说明如下:

http://www.postgresql.org/about/

QUOTE:
Limit Value
Maximum Database Size Unlimited
Maximum Table Size 32 TB
Maximum Row Size 1.6 TB
Maximum Field Size 1 GB
Maximum Rows per Table Unlimited
Maximum Columns per Table 250 - 1600 depending on column types
Maximum Indexes per Table Unlimited
mysql 目前只是适合 跑 web 应用,对于海量数据存储、数据仓库 不合适。

postgresql 在国内早有人做大型商业应用。

QUOTE:
对于大型应用,PostgreSQL 还是合适的。以下是PostgreSQL 中文官方手册维护者 何伟平 laser 对于一个 大型应用 的回复:

QUOTE:
怎么说呢,实际上,我现在手头就有一个庞大的数据库,
数据+索引已经超过500G了,数据总量超过30亿行数据,
每天会忙12小时左右。

基本上,我觉得,首先:
检查你的IO投资,不要在硬盘上吝啬。
第二,仔细分析自己的瓶颈是什么,
很多事后,我们并不一定需要database replicate。
第三,适当使用数据的切割。

简单归结一句话:
适当的硬件投资和规划加上合适的软件结构。
具体的事情需要具体分析。

介绍一下我们那个500G的大库:
单机HP DL385,16G内存和6块SCSI磁盘,20块SATA磁盘盘阵,
盘阵是HP DL320S,(MSA1500),相当便宜。
我们的构造是SCSI是RAID5,跑XFS,SATA,RAID5,跑EXT3,
目前,性能非常满意(我们的角度),有些update语句,一次
会更新几百万行数据,那么我们有些程序,一天要更新几十次,
基本上也可以在1000s之内完成。每天vacuum一次,在低负载的
时段,大概需要120min~200min,用slony做数据的备份,备份
到一台大硬盘的IDE机器上(1.5T硬盘,别惊讶,现在750G硬盘
才3500块钱。)。
这台机器是数据挖掘的,并发数不多,所以我们没有做负载方面
的均衡。

有问题可以继续讨论。
测试,mysql vs postgresql

QUOTE:
Mysql 不适应 大量数据,密集运算,重型负载应用。

至少在目前,开源数据库的质量还不能与商业数据抗衡。

在 2006-11-29 有个国外第3方服务器机构(Tweakers.net)做的 Mysql 4.1.20 ,Mysql 5.1.20a 与 PostgreSQL 8.2 的对比性能测试(在不同档次配置的机器上运行). 你可以参考.
Posted by fsluiter@gmail.com

Tweakers.net, a dutch community of online tweakers, benchmarked their potential new server with PostgreSQL 8.2 vs several versions of MySQL 4.1.20 and MySQL 5.1.20a

图文测试统计报告:
http://tweakers.net/reviews/657/6


QUOTE:
如果要求更高,推荐使用性能优异的 bizgres 集群。

参考:
http://bbs.chinaunix.net/viewthr ... page%3D1&page=1

QUOTE:
2亿的单表,slect crount(*) from table; 来全表扫描。

同配置单主机 硬件: 内存8G,每台机器是两个双核的AMD86.磁盘Raid0+1

Oracle 10g用了50秒,postgresql的普通集群用来一分40秒.

改用Bizgers 这个 PostgreSQL  高性能集群(使用)后,速度是 Oracle 的4倍。


mysql超过1亿行慢得和蜗牛一样。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics