以 NoSQL 概念去存取 MySQL - HandlerSocket
網址: http://yoshinorimatsunobu.blogspot.co ... l-as-nosql-story-for.html
日本 DeNA 公司的 YOSHINORI MATSUNOBU 不久前公開了一個 MySQL 外掛 HandlerSocket ,這個外掛安裝後會為 MySQL 開啟額外的連線介面,透過這個介面可以用非 SQL 語法直接存取儲存在 MySQL 的資料,藉此改善 SQL 語法解析造成的資料存取瓶頸,而且有了驚人的成效。
在作者的測試環境,透過簡單的 Key-Value 查詢,得到下面3個每秒查詢數量:
MySQL + SQL = 105,000
memcached = 420,000
MySQL + HandlerSocket = 750,000
雖然上述的測試都是在記憶體中進行,但是效能有大幅的改進,非常值得一試。
隨後沒多久, mysqlperformanceblog 的 Vadim 用 SSD 進行測試:http://www.mysqlperformanceblog.com/2 ... /02/handlersocket-on-ssd/
在 SSD 進行的測試中雖然不如記憶體,但效能降低的程度不會像傳統硬碟組成的陣列那樣, Vadim 表示也許會再未來版本的 Percona Server 加入這個外掛。
原始作者只有提供 C++ 與 Perl 存取介面,已經有各種延伸到其他語言的實作,在 PHP 已經可以看到3個:
http://openpear.org/package/Net_HandlerSocket
預期最後一個,以 PHP 外掛實作的版本,應該會有比較好的效率(未經測試)。
專案網址:https://github.com/ahiguti/HandlerSocket-Plugin-for-MySQL
在 Ubuntu 安裝的教學:http://ronaldbradford.com/blog/mysql- ... -under-ubuntu-2010-11-05/
http://blog.chenlb.com/2010/05/mongod ... ql-query-performance.html
有人發這種測試
mongodb 的 key value 查詢也是比起 mysql 快上數倍
但看來 HandlerSocket 可以補足 SQL 語法效能的缺憾做到和 mongodb 一樣快 (搞不好更快 ?)
真是越看越覺得很有發展性