gpt4 book ai didi

mysql - 多个大型 MySQL SELECT 查询——最好并行运行还是在队列中运行?

转载 作者:可可西里 更新时间:2023-11-01 07:32:03 24 4
gpt4 key购买 nike

我查了很多这个问题的答案,但找不到具体答案 - 如果我遗漏了什么,请提前致歉!另外,我是一个 SQL 优化新手。

我有一个分析仪表板,它根据用户的请求从大型数据库中提取数据。

用户加载的每个页面都会运行许多不同的查询来填充页面的不同部分(不同的图表、表格等)。其中一些页面可能需要相当长的时间才能加载,因为用户可能会请求数年的数据。

目前,页面的每个部分都会向 SQL 服务器发送一个 SELECT 查询,但由于页面有多个部分,这些查询最终会并行运行。

在队列中运行这些查询是否会更快 - 允许服务器一次处理一个查询?还是让所有东西都保持并行?

一次运行一个的额外好处是我们可以运行查询以首先填充页面的“首屏”部分...

希望一切都有意义,请放轻松:)

最佳答案

我也说“这取决于”,但我倾向于并行。

  • 并行度可能不会超过 CPU 内核的数量。
  • 我很少看到一个系统会耗尽所有 CPU 核心——除非它没有足够好的索引。也就是说,在提问之前修复索引。
  • 如果数据大于可缓存的数据量,可能排队会更快,因为您可能有瓶颈 -- I/O。
  • 如果表不断变化,请关闭查询缓存。
  • 如果您的目标是尽早在页面上获得一些结果(可能是人机界面目标),请在除了一个 AJAX 被调用者(而非调用者)之外的所有结果中添加一个小的延迟。
  • 如果可以同时计算多个页面,事情就会变得更加复杂。例如,您无法真正控制并行度。

让我们看看查询。或许我们可以将它们的速度提高到足以避免这个问题。

关于mysql - 多个大型 MySQL SELECT 查询——最好并行运行还是在队列中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49035650/

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