求教如果提升mysql的效率

来源:2-3 使用官方推荐的pipenv创建虚拟环境(很好用哦~)

weixin_慕虎4093423

2021-01-14

公司一开始使用flask,但非多线程不好用。没办法换了sanic。但是一样在mysql连接池卡住了,无论怎样tps都上不去200了。但如果只是数据处理和转发,不用连接mysql就可以轻松1000多tps。
mysql缓存加了,长连接设置了。一个线程的程序执行时间是2毫秒,连接数是10,50并发还好,但上了200就阻塞。
我们使用了aiomysql.Pool 也还是一样。
求教有什么方法可以提升吗?

写回答

2回答

7七月

2021-01-14

那可以试试mysql的最大连接数设置是不是太小了。

0
2
weixin_慕虎4093423
发现原因了,因为没有用到携程,所以还堵塞了。现在改了,不过有时候会丢链接,连接不到数据库了。
2021-01-14
共2条回复

7七月

2021-01-14

首先应该判断下,瓶颈到底是HTTPServer还是数据库.

如果是数据库的瓶颈,那再需要判断下是不是慢查询太长了,导致线程无法及时释放。

一般解决方案可以参考下面几种:

  1. 优化慢查询,比如加索引、优化sql执行效率

  2. 分库

  3. 增加redis缓存

0
1
weixin_慕虎4093423
sql查询时间平均低于4毫秒,open-file和最大连接数以及缓存都调上去了。索引也都加上了。
2021-01-14
共1条回复

Python Flask高级编程之从0到1开发《鱼书》精品项目

7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程

2735 学习 · 1267 问题

查看课程