gpt4 book ai didi

mysql - mariadb:性能并行查询

转载 作者:行者123 更新时间:2023-11-29 17:36:19 26 4
gpt4 key购买 nike

我们需要您的帮助来了解有关 mariadb 10.2 内部结构的更多信息..

我们有一个复杂的查询。如果我们单独运行这个查询,则需要 5 秒。但是,如果我们并行运行相同的查询,则每个查询运行的时间会更长。

查询在 where 部分包含一个随机整数,因此我们不使用查询缓存。我们的服务器有 4 个可用的 cpu。

我们的观察:

(1) 运行 1 个查询 => ~5 秒

(2) 运行相同的查询 4 ​​次(并行)=> 每个查询运行约 5.5 秒

(3) 运行相同的查询 7 次(并行)=> 每个查询运行约 7 秒

(4) 运行相同的查询 10 次(并行)=> 每个查询运行约 11 秒

我们优化了查询,我们不需要临时磁盘表。我们可以看到,所有 4 个 cpu 的负载均在 80-90% 之间。

但是我们不知道为什么执行时间如此不同。

谢谢,雷内

最佳答案

您是否曾经因为打开的应用程序太多而导致笔记本电脑速度变慢?

任何计算机的资源都是有限的。 CPU、内存、磁盘。如果您运行的进程使用大量资源,则可供下一个进程使用的资源就会减少。

这与并行线程相同,每个线程运行一个查询。它们各自需要使用一些CPU来处理数据。如果数据在磁盘上,则需要将其加载到缓冲池中,这会占用一些磁盘带宽。

此外,一些内部数据结构需要全局锁。就像两个线程尝试将页面加载到缓冲池中一样,两个线程都需要一个全局锁,以便它们可以找到空闲页面。一个线程获取该锁,完成其工作,然后释放该锁。与此同时,第二个线程一直在等待。这种情况每秒发生多次,但是线程越多,争用就越多。

关于mysql - mariadb:性能并行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50256976/

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