MySQL分库分表-理论
2024-10-20 08:35:27
分库分表的几种方式
把一个实例中的多个数据库拆分到不同的实例
把一个库中的表分离到不同的数据库中
数据库分片前的准备
在数据库并发和负载没有达到限制时,不推荐水平拆分
对一个库中的相关表进行水平拆分到不同的实例的数据库中
选择分区键
- 分区键要能尽量避免跨分片查询的发生
- 分区键要能尽量使用各个分片中的数据平均
如何存储无需分片的表
- 每个分片中存储一份相同的数据
- 使用额外的节点统一存储
如何在节点上部署分片
- 每个分片使用单一数据库,并且数据库名也相同
- 将多个分片表存储在一个数据库中,并在表名上加入分片号后缀
- 在一个节点中部署多个数据库,每个数据库包含一个分片
如何分配分片中的数据
- 按安分区键的Hash值取模来分配分片数据
- 按分区键的范围来分配分片数据
- 按分区键和分片的映射表来分配分片数据
如何生成全局唯一ID
- 使用auto_increment_increment和auto_increment_offset参数
- 使用全局节点来生成ID
- 在Redis等缓存服务中创建全局ID
最新文章
- javascript 原型查找 再次试探~
- WPF之命令浅谈
- Lyaer 单弹出层获取数据
- GUI开发者桌面搜索文件工具
- jquery 找不到live方法解决
- android 屏幕截取,pull到pc端
- Spring AOP配置文件
- 小圣求职记A:腾讯篇
- Microsoft Visual Studio 2010中文版编译SQLlite3.7.0版
- C++11变长参数模板
- 【转】【SQLServer】SQL事务用法begin tran,commit tran和rollback tran的用法
- Django学习笔记(二)——django数据库的使用
- sencha touch中用来格式化日期的字符串参数
- 定制样式插入到ueditor
- 【学习笔记】Hibernate 一对一关联映射 组件映射 二级缓存 集合缓存
- 一款优秀的前端框架——AngularJS
- CF815D Karen and Cards
- 【做题】arc078_f-Mole and Abandoned Mine——状压dp
- shiro学习(二)身份验证
- Appium环境安装