mysql并行效率提升

下面是一个并行读取mysql数据库表的测试程序,测试结果发现,读取10个表,1个个读取,和并行读取10个,效率一样,甚至并行读取还慢很多,这是为什么?

python 复制代码
con = get_db_conn()
results = {}
pool = multiprocessing.Pool(processes=multiprocessing.cpu_count())
for i in table_list:
        sql = f"select * from {i}"
        results[i]=pool.apply_async(func=query_db,args=(sql,))
pool.close()
pool.join()

检查一下mysql后端:

原来啊,这个outgoing network traffic一直上不去,从数据库读取出来的数据,发不出去,也就返回不了给客户端,也就是说,数据都堵在网络外发上面了。即便并行把所有数据读出来了,还是被网络外发给卡住了。

解决办法:

  1. 提高网络带宽,你会发现这个outgoing network迅速就提上来了,然后并发也提上来了。

  2. 如果是测试程序和mysql在同一台机器上,千万别用mysql的外网ip来连接,用localhost或者192开头的内网ip。

相关推荐
6+h16 小时前
【Redis】底层原理解析(SDS / 跳表 / IO多路复用 / 单线程模型)
数据库·redis·bootstrap
idolao16 小时前
CentOS 7 安装 nginx-1.3.15.tar.gz 详细步骤(从源码编译到启动配置)
linux·运维·数据库
EnCi Zheng17 小时前
J7A-已有数据表如何安全添加新字段 [特殊字符]️
数据库·安全·oracle
biubiuibiu17 小时前
探秘新飞机:从包装到起飞的全程指南
数据库·python
专注VB编程开发20年17 小时前
SQL SERVER数据库DTE加密和字段加密
数据库·sql server
pupudawang17 小时前
MySQL中日期和时间戳的转换:字符到DATE和TIMESTAMP的相互转换
数据库·mysql
V1ncent Chen17 小时前
SQL大师之路 12 函数基础
数据库·sql·mysql·数据分析
焚 城17 小时前
SQL PARTITION BY用法
数据库·sql
剑锋所指,所向披靡!17 小时前
设计数据库
数据库
暮冬-  Gentle°18 小时前
Python内存管理机制:垃圾回收与引用计数
jvm·数据库·python