数据库优化策略之分区、分表、表分区
分库、分表、表分区 来源场景:读写分离以后可分为一个主库 ( 主库负责写 ) 加上 N 多个从库 ( 从库负责读 ) , 但是因为业务量的扩大,主库还是无法承受写入的压力,那么此时就可以考虑分库、分表、表分区 来进一步优化 分库: 场景 1 :比如一个系统涵盖了订单 \ 物流 \ 仓储 ..... 等等 垂直分库,按业务拆分库,不同库不同的服务器 场景 2:订单增删改特别大 水平分库,每个库结构一致数据不一致 (地域/时间/类别/随机算法) 分表 场景 1 : 文章表, 10个常规字段+1个很长的内容字段 垂直分表,减小表体积,提升增删改查的效率 场景 2: 单表数据量太大 (订单表/商品表) 水平分表 (地域/时间/类别/随机算法) 表分区 一般情况下,我们建立数据库表时,表数据都存放在一个文件里。 但是如果是分区表的话,表数据就会按照你指定的规则分放到不同的文件里,把一个大的数据文件拆分为多个小文件,还可以把这些小文件放在不同的磁盘下由多个 cpu进行处理。这样文件的大小随着拆分而减小,还得到硬件系统的加强,自然对我们操作数据是大大有利的。 所以大数据量的数据表,对分区的需要还是必要的,因为它可以提高 select效率,还可以对历史数据经行区分存档等。但是数据量少的数据就不要凑这个热闹啦,因为表分区会对数据库产生不必要的开销,除啦性能还会增加实现对象的管理费用和复杂性。