发布时间:2022-08-09 文章分类:编程知识 投稿人:赵颖 字号: 默认 | | 超大 打印

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

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倍。