转自:https://blog.csdn.net/King__Jack/article/details/105119374
1.原因
- 数据库连接数达到机器性能的瓶颈;
- 表数据量过大,有些查询命中不了索引从而导致全表扫描;维护索引的效率也随着数据量大到一定量级后指数级下降;新增修改数据的速度会下降很多。
- 硬件资源本身的qps和tps的瓶颈。
2.解决方案
- sql优化(利用好索引);尽量不要用count(*)等性能消耗语句;
- 缓存(redis)。如果记录不断更新,最好将写入的数据放在redis中;对于较大的文本字段,可以使用NoSQL数据库。【nosql适合存大文本字段?】
- 读写分离(解决了数据库连接瓶颈、释放了硬件资源限制(QPS\TPS))
- 分库分表
3.mysql最大QPS
https://juejin.cn/s/mysql%20qps一般为多少
影响因素很多。一般来说,公司常用测试环境的QPS在2000左右。【还是挺高的】
在正常配置下,MySQL只能承载2000万数据(同时读写,表中有大的文本字段,单台服务器)。【意思是一张表最多能存2000万行数据?如果超过的话读写性能就会下降?】
优化方案如上2节。