去年的隨手心得, 記在這備忘。主要是參考《MySQL vs PostgreSQL - WikiVS》 2010-09 的版本, 後來情況應該也有些變化。另外, 很多東西還是要自己測過才準, 後來和一些很熟 DB 的前輩聊, 發覺實際情況還是和看到的有些出入。需求不同, 又有太多細節可以調整了。
後來覺得選用 MySQL 的好處是:
- 資源最豐富, 有書有文件, 也有一堆顧問公司 (如 Percona)
- 有許多大公司實際執行到海量的實例, 不用擔心會流量會卡住 (雖說大部份時候應該要先擔心服務不夠好, 流量太小)
- 有些 syntax sugar 或特制功能很好用, 像是 insert ... on duplicate update , 或 insert ignore
- 有趣的是, 該文認為 MySQL 比 PostgreSQL 流行的原因之一, 是因為 PostgreSQL 沒法限制各個 database 的大小, 對於商用服務來說, 這點很重要 (商用服務會在意限制資源、管理權限等, open source 專案先以個人需求為主, 一開始大概都不會重視這些吧)
備忘
fcamel 2010-09-01 19:54:43 MySQL vs. PostgreSQL, 有這種對照文真不錯, 書上有看過的相關觀念可以重新消化一次, 之前沒看過的....在這也有看沒感覺 MySQL vs PostgreSQL - WikiVS MySQL vs PostgreSQLFrom WikiVS, the open comparison websiteJump to: navigation, search MySQL Postgr 發表回應 1 fcamel 2010-09-01 19:55:43 PostgreSQL 只有一個 engine, 一般來說在大量同時寫入下會比 MySQL 搭各種 engine 快 2 fcamel 2010-09-01 19:56:36 PostgreSQL 比較穩, RDBMS 功能較齊全, 這點在 stackoverflow 上可找出一卡車支持者。也可找出一卡車 MySQL 使用者說他們遇到 DB 炸了多少次 3 fcamel 2010-09-01 19:57:24 MySQL + MyISAM 有無敵快的 count, 因為它沒 MVCC, 可以視情況直接 count index 而不用取 data rows。又因為沒 MVCC, 可以安心地 cache count 4 fcamel 2010-09-01 19:58:58 8.x 的 PostgreSQL 沒有 Insert Ignore / Replace 5 fcamel 2010-09-01 20:00:31 MySQL + MyISAM 在 read-only 或低頻率寫入的情況下是超級快, 因為它沒 constraint, 沒 MVCC。無賴戰法: 我就什麼功能都沒有, 但是只讀不寫的話, 我超快的哦!! 6 fcamel 2010-09-01 20:00:49 剛好我們現在正好只需要這種無賴戰法 XD 7 fcamel 2010-09-01 20:06:12 mysql 內建 replication 機制, 效率比 PostgreSQL 好 (?) 8 fcamel 2010-09-01 20:07:41 Ubuntu 8.04 的 mysql 版本有點舊, 只到 5.0.51a, 之後有幾版大幅提昇速度, 5.1 又有多 sharding 的樣子。 9 fcamel 2010-09-01 20:10:56 PostgrelSQL 有 Bitmap Indexes, 可以合併兩個以上的 indexes, 之後來看看這是啥。一直很好奇怎麼做才能同時用兩個 indexes 10 fcamel 2010-09-01 20:13:45 MySQL 有 covering index, 而 PostgrelSQL 沒有, 令我滿意外的, 原以為 index 那區 MySQL 會兵敗如山倒 11 fcamel 2010-09-01 20:15:14 PostgreSQL 支援 expression indexes, 意思是也可以查 "%keyword%" 嗎? 太神奇了! 之後來查查這是啥 12 fcamel 2010-09-01 20:19:32 這個有意思: "In PostgreSQL there is no built-in mechanism for limiting database size. This is the main reason why the most of the web hosting companies are using MySQL. Also, PostgreSQL doesn't have scheduled procedures. " 13 fcamel 2010-09-01 20:20:32 結果 PostgreSQL 無法流行的主因是沒做這種看似不重要的功能嗎? XD 14 fcamel 2010-09-01 20:23:40 天啊...., 難怪有人提到他比較喜歡 PostgreSQL 的 license, MySQL client library 是 GPL 非 LGPL!! 若沒和 Sun (現在是 Oracle?) 買授權, 就得 open source, 太可怕了... 15 fcamel 2010-09-01 20:30:10 看完兩者的討論後還真想用 PostgreSQL 啊, 考量現況還是繼續用 MySQL 比較務實 Orz 16 fcamel 2010-09-01 20:41:29 stackoverflow 有人提到用 PostgreSQL 加 column 似乎不用鎖住 table, 他們之前用 mysql + replication 的結果, 就不敢加 column, 只好另開 table 用 join 取資料 17 榮尼王 2010-09-01 20:53:54 mysql 加上 master-master 架構的話,alter table 就隨便了啊 18 fcamel 2010-09-01 21:04:56 soga, 還沒看深, 果然各種問題都有一定的配套解法, 謝啦。 回應
沒有留言:
張貼留言