2011網頁開發熱門技術 – HandlerSocket

談到網頁的開發技術,許多人的印象中不外乎便是PHP、Java或是.Net等等,而比較新興的技術則可能是Ruby或是Python,在本系列文章中,我將介紹在近日中熱門的網路技術,讓各位讀者能夠掌握最新趨勢。
評論
評論

談到網頁的開發技術,許多人的印象中不外乎便是 PHP、Java 或是.Net 等等,而比較新興的技術則可能是 Ruby 或是 Python,在本系列文章中,我將介紹在近日中熱門的網路技術,讓各位讀者能夠掌握最新趨勢。

NoSQL v.s. SQL 資料庫

既上次談了 Node.js 這個網站的後端技術 後,我們這次要看的是網站的另外一個要角:資料庫系統。

講到近年來的資料庫系統發展,我想浮現大家眼前的不外乎便是 Google BigTable 論文 後所帶起的各種新一代 NoSQL 資料庫,包含 HBaseCouchDBCassandra 等都是這一波的熱門選擇。

所謂的 NoSQL,指的便是相對於一般傳統 SQL 資料庫像是 MySQL、PostgresSQL 或者是 MS SQL 等關聯式的資料庫。

NoSQL 資料庫的強項是高效能、分散式的架構、並且打破傳統的 schema 欄位架構限制等優點,目前已經應用在很多實際運作的熱門網站,包含很多社群網路或者是社交遊戲等需要大量資料處理的網站。

SQL still works

但在大家一昧追求 NoSQL 資料庫的同時,其實傳統 SQL 資料庫仍然有其優點在,像是其資料的一致性、隔離性等仍然是 SQL 系統較為可靠。

即便像是 Facebook 這樣大量採用 NoSQL 解決方案的公司,其會員資料的部份也仍然是使用 MySQL 作為儲存方式。

況且根據許多的經驗分享,一般的網站若是在沒有超過千萬使用者前,實際上是可以完全不用考慮 NoSQL 的。換而言之,SQL 系統並非效能不足,而是需要進行良好的優化以及設計。

HandlerSocket

HandlerSocket 是由日本遊戲公司 DeNA 所釋出的開放原始碼專案,為一個 MySQL 的外掛,企圖解決的便是上述的效能問題。

根據作者部落格的數據圖表,大家可以很明顯的發現 HandlerSocket 的表現相當突出:

                           approx qps     server CPU util MySQL via SQL                105,000      %us 60%  %sy 28% memcached                    420,000      %us  8%  %sy 88% MySQL via HandlerSocket      750,000      %us 45%  %sy 53%

實際上 HandlerSocket 的運作原理也相當的好理解,主要便是透過原生的 API 介面來繞過 SQL 查詢中最慢的步驟,也就是 SQL 語法的解析。曾經使用過 SQL 查詢的開發者變知道,為了查詢資料庫裡面的內容,我們並需撰寫 SQL 述句來進行查詢,而 SQL 語句的字串必須經過解析,這過程是相當花費時間的,且也有可能解析失敗。

除了繞過 SQL 語法的解析之外,在後續的優化上,HandlerSocket 會保持資料表(Tables)的開啟,並不會在每次的查詢都開啟、關閉資料表,因此相較一般的 SQL 操作來得快上不少。

整體而言可以參考下面的流程圖:

作者的 部落格文章中也有更多的技術細節 可以參考。

結論

相對於現正流行的 NoSQL 技術,我更加看好 HandlerSocket 為主的 MySQL 優化技巧,畢竟 NoSQL 目前仍然在快速發展的階段,對於開發資源較為有限的創業團隊而言,或許選擇 MySQL 為主的技術仍然會是比較好的選擇。

讀者們有任何經驗想分享?歡迎來信或者是留言與我們交流!


精選熱門好工作

平台客服人員

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$15,000

Video/Image Processing Software Engineer

PicCollage 拼貼趣
臺北市.台灣

獎勵 NT$15,000

(Backend)Senior Software Engineer

ShopBack 回饋網股份有限公司
臺北市.台灣

獎勵 NT$15,000

評論