我已阅读以下内容:
到目前为止,我只使用了 MongoDB 和 NodeJS,我希望能够学习 MySQL 来满足我的任何关系数据库需求。在研究 MySQL 和 NodeJS 时,我找到了 MySQL2 的存储库,它与 MySQL 网站没有任何关系。我猜想已经创建了一些 API,可以更快地使用 NodeJS 和 Ruby 等语言进行开发。从 NodeJS 的角度来看,我猜测我仍然在服务器上运行常规 MySQL 数据库,但我需要使用这些新的 API 与其进行交互。喜欢:
https://github.com/sidorares/node-mysql2/blob/master/README.md
我见过一个网站,他们进行性能基准测试,NodeJS 和 MySQL 的性能非常低,而 NodeJS 和 MySQL2 的性能非常高。
此信息来源: php-nodejs-mysql-and-mongo
该帖子的图片:
我是否只是在我的服务器上使用常规 MySQL 数据库并使用此 mysql2 API,或者是否有与此 API 一起使用的不同 MySQL 实现?
这只是普通人编写的 2 个不同的 API。差异在于命令的语法,也许还在于性能,只需安装两者,根据您的目标进行自己的测试,然后选择您认为更适合您的一个。
这是 NPMCompare 的比较:
摘自https://www.npmjs.com/package/mysql2
“MySQL2 的 API 大部分与 mysqljs 兼容并支持大多数功能。MySQL2 还提供这些附加功能
仅前两个功能更好:更快和安全
我在项目中实现
npm i mysql
依赖时遇到了很多问题。
首先,如果您遵循 MVC 架构,那么在服务器和客户端之间提取和 mysql
数据时,send
会变得乏味。
npm i mysql2
简化了这个过程,就像执行查询一样简单
mysql依赖
connection.query(sql,(err,res)=>{*some fn here*})
返回所有行,包括查询的成功结果。
而 mysql2 依赖项
connection.execute(sql)
仅返回查询结果,而不返回行。
另一个区别是,
mysql
npm 模块仍然不支持 MySQL 8 中引入的 caching_sha2_password
身份验证,而 mysql2
npm 模块则支持。
这就是我迁移到 mysql2 的原因。
如果您查看图中 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);