gpt4 book ai didi

mysql - 为什么 MongoDB 和 MySQL 比 grep 慢?

转载 作者:行者123 更新时间:2023-11-29 22:38:13 24 4
gpt4 key购买 nike

我正在对维基百科的页数数据进行一些测试。这由大约 700 万行组成,如下所示:

es London 13 173367

第三列是计数,我想对具有相同名称的文章(第二列)进行求和。因此,在命令行上:

paste -sd + <(grep ' London ' pagecounts | cut -d ' ' -f 3) | bc

效果很好,需要 0.53 秒

我认为使用DB来查询信息会更快,所以我将其全部加载到MongoDB数据库中,然后:

db["pagecounts"].aggregate({
$match: { "article": "London" }
}, {
$group: { _id: "London", "total": { $sum: "$count" } }
});

这可行,但需要可怕的8.96s

困惑和失望,我转向 MySQL:

SELECT SUM(count) FROM pagecounts WHERE article='London';

耗时5.08s

我对数据库的内部了解不多,但我不会想到像 grep 这样的命令行工具在这种事情上会更快。这是怎么回事?还有什么可以改进的地方?

更新

正如 Cyrus 和 Michael 所建议的,创建和索引使这种方式变得更快:~0.002s

最佳答案

正如 @Cyrus 所建议的,您需要一个索引。

ALTER TABLE pagecount ADD KEY (article);

然后再次尝试查询。

在进行基准测试时,您应该使用 SELECT SQL_NO_CACHE ... 以避免看到查询时间比服务器持续交付的速度更快。

关于mysql - 为什么 MongoDB 和 MySQL 比 grep 慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29469745/

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