名词

分库,一个数据库内容拆分到不同的数据库中

分表,将表字段分开,形成二个及以上的表

水平切分:

纵向切分:

读写分离并不缓解存储压力

作用

业务

不同业务子系统,可以使用不同的数据库

性能

检索效率提高

数据隔离

核心业务和非核心的业务数据区分开,让核心业务的投入资源更多。

分表,尽量不要造成跨表查询

分库分表开始前,首先考虑路由和拼接

路由:讲数据查询请求准确导向到目标的分库和分表的机制

拼接:将分散到不同库表的数据重新组合成完整结果集。

常用方法:通过范围、Hash

范围:根据字段大小、业务场景动态调整,无固定值

根据Hash分:

分布式id问题:(UUID,自增ID,批量生成ID,Redis生成ID,雪花算法,uidGenerator,leaf)全局唯一,高性能,高可用,好接入

拆分维度问题

join问题

阿里禁止三张表以上进行join

事务问题

XA

成本问题,资源成本,人力成本

预估一年半的数据量

表分区

将表分为几个文件存储,

1.对外还是一个逻辑表

2.将不同的分区文件放到不同的磁盘上

range,list,hash,key

做分区要结合查询规则。分区的条件,放到where语句中

Logo

更多推荐