mysql sql语句队列_多个大型MySQL SELECT查询 – 更好地并行或在队列中运行?

我已经查了一堆这个问题的答案,找不到具体的答案 – 如果我错过了什么,请提前抱歉!另外,我是一个SQL优化菜鸟.

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

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

目前,页面的每个部分都将一个SELECT查询ping到SQL服务器,但由于页面有几个部分,这些查询最终会并行运行.

在队列中运行这些查询会更快 – 允许服务器一次处理一个查询吗?或者保持一切并行,原样是什么?

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

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

解决方法:

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

>可能不应该具有比CPU核心数更多的并行性.

>我很少看到一个系统咀嚼所有CPU内核 – 除非它没有足够好的索引.也就是说,在提出问题之前修复索引.

>如果数据大于可缓存的数据,则排队可能会更快,因为您可能有一个阻塞点 – I / O.

>如果不断更改表,请关闭查询缓存.

>您的目标是尽早在页面上获得一些结果(可能是人机界面的目标),在除了一个AJAX被叫者(不是调用者)之外的所有人中添加一个小延迟.

>如果可以同时计算多个页面,事情会变得更加复杂.例如,您无法真正控制并行性.

我们来看看查询.也许我们可以加快他们的速度以避免这个问题.

标签:mysql,sql,select,query-optimization

来源: https://codeday.me/bug/20190622/1262925.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值