隨著Web應用變得越來越複雜,單純的MySQL + Memcached似乎已滿足不了資料儲存的需求,一些企業紛紛轉向NoSQL方案,比如MongoDB、CouchDB、 TokyoCabinet/Tyrant、Cassandra等。在他們看來,如果資料訪問模式不是很複雜,用不上SQL資料庫。然而,DeNA公司截然相反,他們選擇了 "only MySQL" 的方案,且獲得了遠遠超越NoSQL的效能。
該公司仍在使用MySQL + Memcached,Memcached主要用於前端Cache,比如預處理的HTML、計數和摘要資訊等,但資料行並不放在Cache裡,而是直接從資料庫查,因為普通的伺服器就可以獲得75萬次每秒的查詢,當前又有哪種NoSQL可以做到呢?
可以使用sysbench、super-smack、mysqlslap等工具測試MySQL效能,比如
[matsunobu@host ~]$ mysqlslap --query="select user_name,..
from test.user where user_id=1" \
--number-of-queries=10000000 --concurrency=30 --host=xxx -uroot
然後使用如下命令得到每秒讀取的行數,
[matsunobu@host ~]$ mysqladmin extended-status -i 1 -r -uroot \
| grep -e "Com_select"
...
| Com_select | 107069 |
| Com_select | 108873 |
| Com_select | 108921 |
| Com_select | 109511 |
| Com_select | 108084 |
| Com_select | 108483 |
| Com_select | 108115 |
可以使用vmstat和Oprofile等工具診斷系統瓶頸。
MySQL Cluster因為效能問題一直受人批判,為改善這種情況引入了NDBAPI,使得效能提升了N倍。但對於非叢集情況怎麼最佳化呢?透過MySQL瓶頸分 析,發現大部分時間花費在SQL解析和表操作上,如果繞過這層操作直接存取儲存引擎,可大大提升效能,MySQL的外掛HandlerSocket正是由 此獲得了每秒75萬次查詢操作的效能,這個評測資料無疑會顛覆整個NoSQL世界。另外,HandlerSocket支援批次讀取和寫操作,這進一步提升 了它的效能。
隨著Web應用變得越來越複雜,單純的MySQL + Memcached似乎已滿足不了資料儲存的需求,一些企業紛紛轉向NoSQL方案,比如MongoDB、CouchDB、 TokyoCabinet/Tyrant、Cassandra等。在他們看來,如果資料訪問模式不是很複雜,用不上SQL資料庫。然而,DeNA公司截然相反,他們選擇了 "only MySQL" 的方案,且獲得了遠遠超越NoSQL的效能。
該公司仍在使用MySQL + Memcached,Memcached主要用於前端Cache,比如預處理的HTML、計數和摘要資訊等,但資料行並不放在Cache裡,而是直接從資料庫查,因為普通的伺服器就可以獲得75萬次每秒的查詢,當前又有哪種NoSQL可以做到呢?
可以使用sysbench、super-smack、mysqlslap等工具測試MySQL效能,比如
[matsunobu@host ~]$ mysqlslap --query="select user_name,..
from test.user where user_id=1" \
--number-of-queries=10000000 --concurrency=30 --host=xxx -uroot
然後使用如下命令得到每秒讀取的行數,
[matsunobu@host ~]$ mysqladmin extended-status -i 1 -r -uroot \
| grep -e "Com_select"
...
| Com_select | 107069 |
| Com_select | 108873 |
| Com_select | 108921 |
| Com_select | 109511 |
| Com_select | 108084 |
| Com_select | 108483 |
| Com_select | 108115 |
...
可以使用vmstat和Oprofile等工具診斷系統瓶頸。
MySQL Cluster因為效能問題一直受人批判,為改善這種情況引入了NDBAPI,使得效能提升了N倍。但對於非叢集情況怎麼最佳化呢?透過MySQL瓶頸分 析,發現大部分時間花費在SQL解析和表操作上,如果繞過這層操作直接存取儲存引擎,可大大提升效能,MySQL的外掛HandlerSocket正是由 此獲得了每秒75萬次查詢操作的效能,這個評測資料無疑會顛覆整個NoSQL世界。另外,HandlerSocket支援批次讀取和寫操作,這進一步提升 了它的效能。