2011-06-14 60 views
20

我正在尋找一些圍繞mysql和node.js的工作,並且發現了一些不同的模塊,但是我無法在他們的穩定性/成熟度上得到一個好的答案。我知道每個作者都非常努力的工作,但是對於我們正在做的工作,我需要知道我有一個堅實的mysql基礎。我發現,看起來不錯的模塊是:什麼是最成熟/穩定的mysql node.js模塊

  1. db-mysql這看起來很活躍。
  2. node-mysql這是我目前看到的一個相當普遍的模塊,它似乎處於維護階段,而且看起來很穩固。
  3. node-mysql-native我喜歡在這裏完成的異步工作,但我不確定它的工作效果如何。
  4. node-mysql-libmysqlclient我不確定這個,但它似乎也很活躍。

我沒有太多太過不尋常的需求。我需要定期的查詢支持,臨時演員會很好,我只需要一個良好的基礎從頭開始。任何有關這些模塊的優缺點的建議都會很棒。如果還有另一個質量競爭者,我沒有發現我根本不反對考慮另一種選擇。

回答

16

我M節點MySQL的本機驅動程序的作者,從我的觀點差異是

  1. 沒有準備的語句支持(還)在節點的MySQL
  2. 根據我的基準節點的MySQL是10-20 %比node-mysql-native慢
  3. node-mysql有更廣泛的採用,更多的測試和用戶。如果您需要穩定性,最好使用它
  4. node-mysql-libmysqlclient在快速查詢上速度提高2到3倍。但是,如果你有很多慢查詢並使用連接池,它可能比原生JS驅動程序慢,因爲libmysqlclient異步調用基於nodejs線程池而不是事件循環。

更新

由於2013年11月7日

  • (2)。不再有效(mysql-native比node-mysql慢一點)
  • this alternative到node-mysql,在一些基準測試中,它的速度提高了2-3倍,對準備語句,SSL和壓縮具有相同的API +支持。還實現了服務器端協議的簡單子集 - 例如參見MySQL -> Postgres proxy
  • node-mariasql也是一個很好的選擇(如果可以使用二進制插件) - 快速,穩定,異步,預處理語句支持,壓縮和SSL。
+0

感謝Andrey的信息,這給了我更多的思考。 – 2011-06-15 12:04:46

+0

兩年之後,這些信息仍然存在嗎? – Druska 2013-07-10 20:51:30

+0

1 - true,2 - 不再是true(node-mysql比mysql-native更快),3 - true,4 - true(但現在更容易更改線程池大小 - https://groups.google.com/d/msg/nodejs/U06-jUFlvW4/_3T-kqrqIagJ)5 - 一個月前的copule我創建了https://github.com/sidorares/node-mysql2這是與node-mysql兼容的API +速度&extras like compression,prepared語句和SSL。 6)值得看一下https://github.com/mscdex/node-mariasql/(二進制,快速,準備好的語句) – 2013-07-11 02:00:33

7

我經歷了類似的搜索,最終決定了node-mysql。我喜歡它的簡單性,它是純粹的js,並且它得到了很好的支持。這是我做的測試速度慢於一些混合模塊(那些使用非JS庫),但我做了一個小補丁,與我的情況下,大大幫助了:

https://github.com/geochap/node-mysql

+0

謝謝傑夫,謝謝你的叉子的信息,我不得不看看它。 – 2011-06-15 12:05:19

+1

請注意@Geoff的github頁面已經過時(超過1000次提交)。使用:https://github.com/mysqljs/mysql – Ismail 2016-07-12 18:52:54

相關問題