分库分表中间件 Apache shardingsphere
前一段时间,发现一个查表的数据特别慢,查了一下数据量1亿4千万,震惊!!!!随着数据量的增加,磁盘IO瓶颈和CPU瓶颈,都会导致数据库连接池可用连接数减少,最后达到峰值,接下来就是崩溃了!没办法了,只能对表进行拆分了.
IO瓶颈:
①表字段过多,导致查询的热点数据过多,数据库缓存不够用了,没次都会产生大量io,降低查询速度。解决方案:垂直拆分表,将热点字段与使用频率低的字段分开,查询确定查询项。
②网络IO,请求数据太多,带宽不够。解决方案:分库。
CPU瓶颈:
①SQL问题:大量的group by,order by,join,以及子查询等复杂sql,非索引条件字段查询。解决方案:建立合适的索引,将复杂逻辑移到代码的service中处理。
②单次查询数量较大,行数过多,SQL效率降低。解决方案:水平分表。
查了一下市场上的分库分表中间件有:
shardingsphere(当当网)
Cobar(阿里巴巴)
MyCAT(基于Cobar)
T