什么是最成熟/最稳定的mysql node.js模块

时间:2011-06-14 14:26:07

标签: mysql node.js

我希望在mysql和node.js上做一些工作,并找到了一些不同的模块,但我不能在它们的稳定性/成熟度上获得良好的优势。我知道每个作者都非常努力地完成每一个作品,但是对于我们正在做的工作,我需要知道我有一个坚实的mysql基础。我发现看起来很不错的模块是:

  1. db-mysql这看起来非常活跃。
  2. node-mysql这是迄今为止我见过的一个非常普遍的模块,似乎处于维护阶段,看起来很稳固。
  3. node-mysql-native我喜欢在这里完成异步工作,但我不确定它的效果如何。
  4. node-mysql-libmysqlclient我不确定这个,但它似乎也很活跃。
  5. 我没有太多与众不同的需求。我需要定期查询支持,额外功能会很好,我只需要一个良好的基础开始。关于这些模块的优点和缺点的任何输入都会很棒。如果还有另一个质量竞争者我没有找到我根本不反对考虑另一种选择。

2 个答案:

答案 0 :(得分:16)

我是node-mysql-native驱动程序的作者,从我的角度来看差异是

  1. 在node-mysql
  2. 中没有准备好的语句支持
  3. 根据我的基准测试,node-mysql比node-mysql-native
  4. 慢10-20%
  5. node-mysql有更广泛的采用,更多的测试和用户。如果您需要稳定性,请更好地使用它
  6. node-mysql-libmysqlclient在快速查询上快2到3倍。但是,如果您有很多慢查询并使用连接池,它可能比本机JS驱动程序更慢,因为libmysqlclient异步调用基于nodejs线程池,而不是基于事件循环。
  7. 更新

    截至2013年7月11日

    • (2)。不再有效(mysql-native比node-mysql慢一点)
    • 拥有this alternative到node-mysql,在某些基准测试中,它的速度提高了2-3倍,对准备好的语句,SSL和压缩具有相同的API +支持。还实现服务器端协议的简单子集 - 例如参见MySQL -> Postgres proxy
    • node-mariasql也是一个非常好的选择(如果可以使用二进制插件) - 快速,稳定,异步,预处理语句支持,压缩和SSL。

答案 1 :(得分:7)

我经历了类似的搜索并最终确定了node-mysql。我喜欢它的简单性,它是纯粹的js,并且它得到了很好的支持。我做的测试比一些混合模块(那些使用非js库)的测试要慢,但是我做了一个小补丁,对我的案例有很大帮助:

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