欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-25 21:09:07
...
数据量今后会很大/你无法预测 数据量会多大,建议换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亿行慢得和蜗牛一样。