什么是分库分表?
垂直拆分:
分库:按照业务拆分(如将一个电商项目的全库分为订单库、会员库、商品库)
分表:按照业务拆分字段(比如用户表将一些操作频繁的字段拆分出新的表:登录功能(密码))
垂直拆分特点:
每个库(表)的结构都不一样(业务)
每个库(表)的数据都(至少有一列)一样(用于关联)
每个库(表)的并集是全量数据
水平拆分
分库:将一个库的数据分到多个库中
分表:将一个表中数据分到多个表中
水平拆分的特点:
每个库(表)的结构都一样
每个库(表)的数据都不一样
每个库(表)的并集是全量数据
常用数据分片策略:
取模分片。
优点:数据存放比较均匀。缺点:扩容需要大量数据迁移。
按范围分片。比如时间,id范围
优点:扩容不需要迁移数据。缺点:数据存放不均匀,容易产生数据倾斜。
根据业务场景,灵活定制分片策略。-一面试重点
数据分片策略。