MySQL和&之间有什么区别? MySQL2考虑NodeJS

时间:2014-08-16 22:40:35

标签: mysql node.js relational-database mysql2

所以我读过以下帖子“

What the difference between mysql and mysql2 gem

到目前为止,我只使用了MongJDB和NodeJS,我希望能够为我的任何关系数据库需求学习MySQL。在研究MySQL& NodeJS我找到了MySQL2的存储库,它似乎与MySQL网站没什么关系,我假设已经创建了API,这使得使用NodeJS和amp;等语言进行开发更快。红宝石。从NodeJS的角度来看,我假设我仍在我的服务器上运行常规的MySQL数据库,但我需要使用这些新的API进行交互:

https://github.com/sidorares/node-mysql2/blob/master/README.md

我还看过一个他们做性能基准的网站和NodeJS& MySQL的性能非常低。和NodeJS& MySQL2非常高

此信息的来源: php-nodejs-mysql-and-mongo

这篇文章中的图片:

enter image description here

问题:我是否只是在我的服务器上使用常规MySQL数据库并使用这个mysql2 API,或者是否有与该API一起使用的不同MySQL实现?

我在大约10年内没有使用过MySQL。我只使用过Microsoft的SQL Server。所以我严重落后。我已经开始使用NodeJS并且认为我最好的关系数据库选项是MySQL,我还应该寻找其他什么东西吗?

4 个答案:

答案 0 :(得分:16)

这只是普通人编写的2种不同的API。不同之处在于命令的语法和性能,只需安装两者,为您的目标进行自己的测试,并选择一个您认为更适合您的目标。

这是comparison by NPMCompare

答案 1 :(得分:6)

摘自https://www.npmjs.com/package/mysql2

" MySQL2主要与mysqljs API兼容,并支持大多数功能。 MySQL2还提供了这些附加功能

  • 更快/更好的表现
  • 准备好的陈述
  • MySQL二进制日志协议
  • MySQL服务器
  • 对编码和整理的扩展支持
  • Promise Wrapper
  • 压缩
  • SSL和身份验证开关
  • 自定义流
  • 池"

仅前两个功能更好:更快更安全

答案 2 :(得分:2)

如果您在图中查看用于mysql和mysql2的源代码,那么他将同时使用mysql api。唯一的区别是标记为mysql的他每次都关闭连接。因此,最重要的是不要每次都关闭连接。 mysql2 api应该更快,但是我还没有看到任何数据。

有用于图形数据的“ mysql2”代码。请注意,api仍然是mysql,而不是mysql2:

var sys = require('sys'),
http = require('http'),
mysql = require('mysql')
client = null;

client = mysql.createClient({
          user: 'root',
          password: '',
});
client.query('USE mongo');

http.createServer(function(req, res) {
        client.query(
                  'SELECT * FROM basic WHERE id = '+Math.floor(Math.random()*100000),
                  function selectCb(err, results, fields) {
                    if (err) {
                      res.writeHead(200, {'Content-Type': 'text/html'});
                          res.write('Bad');
                          res.end();
                      throw err;
                    }

                    res.writeHead(200, {'Content-Type': 'text/html'});
                        res.write('Gooood');
                        res.end();
                  }
                );
}).listen(8080);

答案 3 :(得分:1)

我在项目中实现npm i mysql依赖关系时遇到很多问题。 首先,如果您遵循 MVC 体系结构,则在服务器和客户端之间提取和mysql数据时,send变得很乏味。 npm i mysql2简化了此过程,就像执行查询一样简单

用于mysql依赖 connection.query(sql,(err,res)=>{*some fn here*})返回所有行,包括查询的成功结果。 而 mysql2依赖 connection.execute(sql)仅返回查询结果,而不返回行的结果。