这是一个创建于 1015 天前的主题,其中的信息可能已经有所发展或是发生改变。
现有一个业务方法,包含了 mysql 查询更新和 redis 查询更新操作等,没有其他的例如网络请求等 io 阻塞操作~然后现在需要批量处理;
以每次 200 条数据进行操作:
(1)直接循环单线程串行操作,耗时 5s;
(2)使用多线程执行,耗时 2s;线程数上下微调后,最优大概是这个耗时;
经网上查询,类似的问题,比如单线程查询大量 mysql 操作和将任务分解并发查询的性能差异:结合网上和分析大概是要看瓶颈所在,如果在于 mysql 服务的磁盘瓶颈或宽带,则不会带来什么提升等;
(前提) 带宽没到瓶颈,使用内网;观察数据库服务的指标,也是都没到瓶颈
大佬们分析下,多线程并发的操作 mysql 或 redis,真的会带来性能提升吗?
(1)比如说多线程执行,会调动 mysql 的多线程执行?redis 的网络模块多线程执行?带来的性能提升?
(2)还是说由于使用多线程,本地多核心使用带来的提升?
3 条回复 • 2022-03-20 19:39:45 +08:00
|
|
1
gy123 2022-03-20 14:21:48 +08:00 via iPhone
大佬们呢
|
|
|
2
EscYezi 2022-03-20 17:06:45 +08:00 via iPhone
优化一下减少查询次数,可能比上多线程提升更大
|
|
|
3
gy123 2022-03-20 19:39:45 +08:00 via iPhone
@ EscYezi 是的。不过想要的就是不改变现有方法逻辑的前提,进行对比
|