447 字
2 分钟
分库分表场景
我们分库分表,是有分片键的,这个分片键怎么用的呢?
分片键是用来决定一条数据应该存储在哪个库或者表中的字段,它直接影响数据的分布,查询效率和系统扩展性。
78%
全部章节
- 1 MySQL共享锁和排他锁的区别
- 2 数据库ACID四大特性
- 3 MVCC-多版本并发控制
- 4 MySQL全局锁,表级锁,行级锁
- 5 MySQLbinlog,redolog和undolog
- 6 MySQL索引类型有哪些
- 7 MySQL-VARCHAR支持的最大长度
- 8 MySQL事务隔离级别
- 9 MySQL中的数据排序是怎么实现的
- 10 MySQL中几种count的区别
- 11 MySQL中CHAR和VARCHAR的区别
- 12 MySQL事务的两阶段提交是什么
- 13 MySQL中发生死锁如何解决
- 14 搭建MySQL主从服务器
- 15 如何处理MySQL的主从同步延迟
- 16 什么是MySQL的主从同步机制
- 17 MySQL中如何解决深度分页问题
- 18 分库分表场景 阅读中
- 19 MySQL联合索引失效情况
- 20 MySQL-binlog
- 21 MySQL-redolog
- 22 MySQL-relaylog(中继日志)
- 23 MySQL-undolog(回滚日志)
分库分表
什么场景分库
- 当单个数据库支持的连接数不足以满足客户端需求
- 数据量超过了单个数据库实例的处理能力
什么场景分表
- 单表数据量太大
- 单表存在较高的写入场景
- 当表中存在大量的TEXT,LONGTEXT 或者BLOB字段
什么场景分库分表
- 高并发写入场景: 当应用面临高并发的写入请求的时候,单库单表无法满足需求,需要进行分库分表。
- 海量数据场景: 当数据量非常大的时候,单库单表无法满足需求,需要进行分库分表。
分库分表的优缺点
优点
- 提高系统的性能和可扩展性
- 提高系统的可用性和可靠性
- 提高系统的可维护性
缺点
- 增加系统的复杂性
- 增加系统的成本
- 增加系统的维护成本
分库分表如何设计
我们分库分表,是有分片键的,这个分片键怎么用的呢? 分片键是用来决定一条数据应该存储在哪个库或者表中的字段,它直接影响数据的分布,查询效率和系统扩展性。
举个例子:
-
Hash分片 原理: 对分片键的值进行哈希运算,然后对库或者表取模 适用场景: 数据访问随机性强,读写均衡

-
Range分片(范围分片) 原理: 根据分片键的值范围划分数据 使用场景: 时间序列数据,范围查询频繁

-
Lookup映射分片 原理: 维护一个映射表,指定某个分片键值属于哪个分片 使用场景: 分片键是枚举值,比如国家,地区等


发现错误或想要改进这篇文章?
在 GitHub 上编辑此页 分库分表场景
相关文章
按系列 / 标签 / 分类推荐