前言
分治、顾名思义,就是将一个整体拆分开成若干部分进行分别治理;
为什么要将整体拆分成若干个部分?
如:整体比较复杂、数据量过大、为操作提供便利等都可能是分治的原因
提示:如无特殊说明以下“数据库”直接理解成mysql
哪些地方用到了分治思想
1、分库分表
分库:服务访问量大、并发高时,此时服务的响应压力一般都是直接给到了数据库,此时如果数据库的连接已经到了单库的上限了,此时排除其他优化方案如缓存、加读库 { 加读库只能解决读压力,写压力依然是单个主库} 或者其他优化方案已经做到了极致还是连接数不够,此时就应该考虑做分库以提高数据库的高并发响应能力,其实主要是提高写能力 { 如果主要是读的压力比较大做个读写分离就能缓解读压力没必要分库} 分库主要还是意在写并发上
分表:在项目中部分业务表数据量比较大,如单表有几千万甚至上亿条数据时,即使表索引构建合理,缓存、各种查询优化都做到了极致,单表查询依然很慢&