最近在看mysql文檔,發現了很多好耍的東西,同時也發現了很多不好耍的東西.
想對比一下mysql和pgsql,于是到baidu上隨便搜了幾篇文章.其中有一篇文章寫的不錯.而且其中有一段話寫的很經典:"沒有好的數據庫,只有合適的數據庫"
以下文章轉自:http://blog.chinaunix.net/u/553/showart.php?id=283310
Mysql與Postgresql數據性能比較
數據量今后會很大/你無法預測 數據量會多大,建議換postgresql.
mysql 在一定量數據后(一般觀點是 mysql 單表 200-300萬 時性能最好,數據再多性能就開始下降),性能下降很快,且大數據量情況下,mysql 穩定性/數據可靠性是問題。
postgresql 8.2 的官方說明如下:
http://www.postgresql.org/about/
postgresql 在國內早有人做大型商業應用。
想對比一下mysql和pgsql,于是到baidu上隨便搜了幾篇文章.其中有一篇文章寫的不錯.而且其中有一段話寫的很經典:"沒有好的數據庫,只有合適的數據庫"
以下文章轉自:http://blog.chinaunix.net/u/553/showart.php?id=283310
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 應用,對于海量數據存儲、數據倉庫 不合適。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
postgresql 在國內早有人做大型商業應用。
QUOTE:
對于大型應用,PostgreSQL 還是合適的。以下是PostgreSQL 中文官方手冊維護者 何偉平 laser 對于一個 大型應用 的回復:
測試,mysql vs postgresqlQUOTE:
怎么說呢,實際上,我現在手頭就有一個龐大的數據庫,
數據+索引已經超過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塊錢。)。
這臺機器是數據挖掘的,并發數不多,所以我們沒有做負載方面
的均衡。
有問題可以繼續討論。
數據+索引已經超過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塊錢。)。
這臺機器是數據挖掘的,并發數不多,所以我們沒有做負載方面
的均衡。
有問題可以繼續討論。
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
至少在目前,開源數據庫的質量還不能與商業數據抗衡。
在 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
參考:
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億行慢得和蝸牛一樣。
同配置單主機 硬件: 內存8G,每臺機器是兩個雙核的AMD86.磁盤Raid0+1
Oracle 10g用了50秒,postgresql的普通集群用來一分40秒.
改用Bizgers 這個 PostgreSQL 高性能集群(使用)后,速度是 Oracle 的4倍。
mysql超過1億行慢得和蝸牛一樣。
你的要求恐怕最好是使用Oracle,DB2 強力商業數據庫才合適. 如果非要用開源的,在Mysql與PostgreSQL之間選,更合適的是PostgreSQL: 1."海量數據","復雜業務邏輯" 這兩條 PostgreSQL占絕對優勢,Mysql 的確快,但只是在小數據量時很快,但如果巨量數據,性能下降很快比PostgreSQL快多了. 在巨量數據條件下Mysql可靠性成問題,今天就有朋友給我抱怨"我也就做DIscuz-BBS Mysql 庫也就10GB 大,數據時不時損壞,經常需要mycheck修復數據才行.很想讓系統定期check";另一個朋友也插話說他的mysql數據庫到了100G后三天兩頭 數據損壞,搞的頭大. Postgresql 我所知道的例子是有庫到了4TB 正常運行. 2."頻繁的數據統計和分析,可能會運用到不少商業智能、統計模型和預測的應用" 這條也是 PostgreSQL占優勢. Mysql 只在到了5.0 時引進了,InnoBDB 數據表格式后 才具有初步的事務處理能力,目前還是很簡陋,且,InnoBDB 比 默認的 MyISAM 性能差. Mysql 如果只是查詢數據(數據不多)性能不錯,但其他操作就沒那么出色.如果用InnoBDB 和開啟 Mysql 5.0 以來添加的新的企業用途功能后,性能根本不能與PostgreSQL比. PostgreSQL 功能很全,甚至有些功能商業數據庫也不具備,用于商業事物處理的功能很久以前就很成熟. 呵呵,我也是PostgreSQL新手,只是喜歡探索和看書,看資料. 你這種要求,最好去咨詢國內最著名的PostgreSQL 大牛 何偉平 -->去他的 www.pgsqldb.org 找他,他是創辦人,有豐富的PostgreSQL商用經驗,最近在 <<程序員雜志>>2006-6月號上發表一篇專門介紹 開源數據庫的文章(Mysql,Postgresql,FireBird),也簡單介紹了一個PostgreSQL商用案例. [ 本帖最后由 likuku 于 2006-9-1 22:51 編輯 ] |
gh.duowan.com,使用PostgreSQL。
27G的數據量,200W的日訪問量 下面是該網站維護者Chanix給我的回復,僅作參考: --------------------------------- 我的機房是電信線路,網通訪問比較慢。這幾天流量突漲,效率上正在進行優化。從最前端的 squid 到最后的 數據庫服務器都在不斷調整和優化中。 我負責的站也有社會性軟件的思想設計的社區。可以看看 http://home.duowan.com。 PG不是完美的數據庫,肯定是有缺點的。我認為主要的缺點就是進程模式,一個進程處理一個連接,這樣的處理方式較消耗資源。不過從另外一方面來講,就是因為使用了“落后的”進程模式所以才能達到這么穩定的效果。世上的東西總是雙刃劍。。。 MYSQL的確是快,呵呵,特別是ISAM。目前使用MYSQL做SNS類型網站的成功案例也不少。例如 mixi.jp myspace.com LiveJournal.com 等等,都是上T容量,上百臺數據庫服務器。。。而且MYSQL支持的表的類型比較多,ISAM INNODB HEAP。。。可以按照數據的使用狀態來進行靈活的使用。 說說為什么我選擇PG吧。 我選擇PG是因為從6系列開始我就一直在用,比較熟悉。而且我實在是不認為沒有ACID的東西可以叫數據庫。。。當時MYSQL還在3系列,連最基本的事 務功能也沒有,更加別說什么觸發器,函數了。插入記錄竟然還是表鎖,并發插入一多,整個系統馬上和紙搭的房子一樣坍塌掉(很不幸,當時我做的那個應用插入 比較多)。。。 MYSQL也有它的優點,這個不是重點,我就不多說了。 我對PG比MYSQL熟悉的多。所以我選擇PG。這個是最主要的原因。到目前為止,PG還沒有讓我失望。我覺得你的選型也可以這樣考慮的,從實際中看兩者各有優劣。也各有成功案例。很難說SNS只有PG能做,或者只有PG能做。 還是那句話,沒有好的數據庫,只有合適的數據庫。找到最合適你使用的數據庫才是最好的選擇 微笑 正如我雖然選擇PG,但沒有排斥MYSQL,在我負責的站點中,還是有很多應用是使用MYSQL的。 順帶說一句: MYSQL要4系列以后,使用INOODB才支持事務。而INOODB與PG之間的效率差別我測試的結果不是很大。 有空可以去看看源代碼。MYSQL支持事務的那段代碼比起PG比較起來,PG的清晰多了(雖然,我哪個都寫不出來 害羞 )。 PG的確穩定,我有個應用我正準備廢掉,所以不想花時間優化了,那臺數據庫服務器每天UPTIME超100。我現在都懶的管了。反正只要訪問的人少了,肯定能恢復過來。換成MYSQL,已經崩潰,數據庫受損了。 PG一旦出問題,那就是真的出問題了。MYSQL不是,出問題了,你可以通過 repair 來修,不過修理的結果是對是錯,你就自己掌握吧。我是試過一個表,系統很高興的告訴我修理成功!結果發現唯一鍵字都出重復,害的我整了一通宵。 PG最大的問題我認為在于一個連接一個進程。一臺機器上最大的進程數是有限制的,也就意味著可以同時處理的連接數比MYSQL小的多。 PG需要整理,雖然8系列以后出現了 auovaccum 但是還是很麻煩。這也是目前我比較頭痛的問題。因為網站是24*7對外開放的,所以不可能停機去VACCUM FULL,幸好機器硬盤夠大,呵呵。這個問題也是我一直想請教LARSER的。 PG的中文資料太少!用的人少,可以請教的人也不多。不象MYSQL,哪個書店里面都有什么XXX天精通MYSQL之類的書,到處都有人吹噓自己精通MYSQL(即使他只會SELECT + UPDATE)。 |