一、数据库瓶颈
不管是
IO
瓶颈,还是
CPU
瓶颈,最终都会导致数据库的活跃连接数增加,进
而逼近甚至达到数据库可承载活跃连接数的阈值。在业务
Service
来看就是,
可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、
崩溃)。
1
、
IO
瓶颈
第一种:磁盘读
IO
瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产
生大量的
IO
,降低查询速度
->
分库和垂直分表。
第二种:网络
IO
瓶颈,请求的数据太多,网络带宽不够
->
分库。
2
、
CPU
瓶颈
第一种:
SQL
问题,如
SQL
中包含
join
,
group by
,
order by
,非索引字段
条件查询等,增加
CPU
运算的操作
-> SQL
优化,建立合适的索引,在业务
Service
层进行业务计算。
第二种:单表数据量太大,查询时扫描的行太多,
SQL
效率低,
CPU
率先出现
瓶颈
->
水平分表。
二、分库分表
1
、水平分库
评论