gpt4 book ai didi

mysql - 与 MySQL 相比,MongoDB 慢得多——基本的 find() 方法

转载 作者:行者123 更新时间:2023-11-29 00:00:10 25 4
gpt4 key购买 nike

这是我的第一个 Stackoverflow 问题,但我是长期读者。

我正在做一些家庭项目,我试图比较 MongoDB 和 MySQL 的速度。令人惊讶的是……即使是非常基本的表,MongoDB 也慢了将近 5 倍?我读到它们的速度几乎相同,但这让我开始思考。

有人可以向我解释为什么会这样吗?

MongoDB 代码:

app.get('/mongodb', function(req, res, next) {
var time = process.hrtime();
User.find(function(err, users) {
if (err) return next(err);
var diff = process.hrtime(time);
if(diff[0] == 0) {
res.send(diff[1].toString());
} else {
res.send(diff[0]+"."+diff[1]);
}
});
});

MySQL代码:

app.get('/mysql', function(req, res, next) {
var time = process.hrtime();
mysql.query("SELECT * FROM users", function(err, results) {
if (err) throw err;
var diff = process.hrtime(time);
if(diff[0] == 0) {
res.send(diff[1].toString());
} else {
res.send(diff[0]+"."+diff[1]);
}
});
});

MySQL 返回:1.52201348

MongoDB 返回:9.746405351

架构是:

User {
id integer,
name string,
email string,
}

大约有 500000 名用户。

索引在 MongoDB 中位于 _id 上,在 MySQL 中位于 id 上。

MongoDB 外壳版本:2.4.6

MySQL版本:5.5.37

有什么想法吗?任何帮助或建议将不胜感激。

问候,Wnzl.

最佳答案

我认为这里的主要问题是基准测试应该始终针对特殊用例进行。他们以相同的速度执行的假设是非常不具体的。

因此,您在此处检查的用例是由您的示例定义的,意味着获取模式的所有实体。即使用例非常简单,结果的意义也不大。

MongoDB 和 SQL 是为不同用例设计的数据库系统。这意味着每个系统都针对不同的查询进行了优化。这是我认为你应该更深入地挖掘以获得不同性能的原因的地方。

还要考虑到,基于 hat,查询一个模式的所有实体,也许可以通过多个但总体上更快的查询来实现。最后考虑 Bootstrap 、缓存和索引机制,由于对系统特定用例的优化,它们可能完全不同。

关于mysql - 与 MySQL 相比,MongoDB 慢得多——基本的 find() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30175905/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com