分库分表的几种方式
1、把一个实例中的多个数据库拆分到不同的实例
2、把一个库中的表分离到不同的数据库中
3、对一个库中的相关表进行水平拆分到不同的实例数据库中
如何选择分区键:
1、分区键要能尽量避免跨分片查询的发生
2、分区键要能尽量使各个分片中的数据平均
如何存储无需分片的表:
1、每个分片中存储一份相同的数据
2、使用额外的节点统一存储
如何在节点上部署分片
1、每个分片使用单一的数据库,并且数据库名也相同
2、将多个分片表存储在一个数据库中,并且在表名上加入分片号后缀
3、在一个节点中部署多个数据库,每个数据库包含一个分片
如何分配分片的数据:
1、按分区键的hash值取模来分配分片数据
2、按分区键的范围来分配分片数据
3、利用分区键与分片的映射表来分配分片数据
如何生成全局唯一ID
1、使用auto_increment_incremen(增加步长)t与auto_increment_offset(开始值)参数
2、使用全局节点生成ID
3、在Redis等缓存服务器中创建全局ID
分库分表实现可以利用oneProxyp工具进行分表分库
待续。。。