1. 程式人生 > >MemSQL: 號稱是“世界上最快”的資料庫

MemSQL: 號稱是“世界上最快”的資料庫

在我們印象中的資料庫主要是Oracle, Sybase, DB2, Mysql。但現在有一款號稱是“世界上最快”的資料庫,它就是MemSQL,但目前MemSQL在IT社群處於爭議之中,有人認為它是偽科學,具體內容先往下看吧。

MemSQL是由前Facebook員工Eric Frenkiel和前微軟SQL Server高階工程師Nikita Shamgunov研發推出的,該資料庫的目標旨在提高關係型資料庫的執行速度。

MemSQL通過將資料放置在記憶體中,並將SQL語句翻譯為C++,來達到查詢執行最優化。這使得MemSQL以難以置信的速度寫入和讀取資料。Frenkiel稱,MemSQL比磁碟型資料庫的執行速度快了30倍。

MemSQL官方網站瞭解到,MemSQL具有以下幾大特色:

1. 無可比擬的效率:MemSQL的執行效率是傳統的基於磁碟的資料庫的30倍,同時它優於其他記憶體資料庫的資料,因為它將SQL轉換成C++。
2. 強大的SQL執行能力:支援全功能的關係型資料庫,開發者不必修改現有程式即可獲得NoSQL鍵值儲存系統的效率。
3. 水平和垂直擴充套件:MemSQL支援垂直擴充套件,CPU越好效率就越高;支援向多CPU擴充套件;此外,MemSQL還可與MySQL節點結合起來處理百萬兆級的負載。
4. 預設支援資料永續性:MemSQL預設支援資料從記憶體到磁碟/SSD的同步,保證資料的安全可靠。
5. 簡易安裝:只需30秒即可完成安裝並使用MemSQL,相容MySQL,學習曲線平滑。

當然,對於MemSQL的出現,眾多技術大牛也都圍觀並發表了自己的看法:

微博@Fenng說:

MemSQL是一種偽技術,老瓶子裝新酒,並不是革命性的東西。很多人覺得需要更快的DB,實際上,他們需要的是寫更有效率SQL語句的人。

這條微博引起了關於“更快的DB vs 能寫更有效率的SQL的人?”的討論。@林楓-孫靖楠說:

……更多人需要的是寫出高效率的SQL,而不是寄託在某種技術上

也有持不同意見者,如@淘寶褚霸就認為:

效率差1個數量級是很難通過寫SQL來提升的,除非之前的SQL不是專業人士寫的。
寫好SQL會有很大的提升,但是寫對了以後想繼續提高就非常難,畢竟天花板是在資料庫的實現上。

雙方的觀點都不無道理,只是出發點不同罷了。我們既需要能寫出更有效率的SQL語句的人,也需要更效率更高的資料庫系統。當語句寫到最優卻仍然不能解決滿足需求時,就需要新技術的產生。二者有機結合起來才能推動技術的進步。且不論MemSQL是否偽技術,但它至少是技術前進道路上的一小步。正是由於這許許多多的小步,才推動著技術不斷革新的大步。