資料量今後會很大/你無法預測 資料量會多大,建議換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億行慢得和蝸牛一樣。