【数据库分库分表最佳实践及说明】
数据库瓶颈不管是IO瓶颈还是CPU瓶颈 , 最终都会导致数据库的活跃连接数增加 , 进而逼近甚至达到数据库可承载的活跃连接数的阈值 。在业务service来看 , 就是可用数据库连接少甚至无连接可用 , 接下来就可以想象了(并发量、吞吐量、崩溃) 。
IO瓶颈
- 第一种:磁盘读IO瓶颈 , 热点数据太多 , 数据库缓存放不下 , 每次查询会产生大量的IO , 降低查询速度->分库和垂直分表
- 第二种:网络IO瓶颈 , 请求的数据太多 , 网络带宽不够 ->分库
- 第一种:SQl问题:如SQL中包含join,group by, order by , 非索引字段条件查询等 , 增加CPU运算的操作->SQL优化 , 建立合适的索引 , 在业务Service层进行业务计算 。
- 第二种:单表数据量太大 , 查询时扫描的行太多 , SQl效率低 , 增加CPU运算的操作 。->水平分表 。
推荐阅读
- 为什么数据库会丢失数据?
- mysql数据库备份及其恢复
- 分库分表简单?那我想问如何实现“分库分表插件”?
- IT基础设施国产替代:依次为芯片、操作系统、中间件、数据库
- 在线yum安装 Linux中安装MySQL数据库下
- mysql数据库13种常用函数方法总结
- 数据库管理工具Navicat Premium 15安装
- 适合中小型公司的Mysql数据库使用规范
- 云数据库RDS基础版的优势及适用场景
- 数据库是什么意思?