文章目录
- 集中式数据库
- 反规范化设计
- 分类
- 保证数据的一致性方法
- 分布式数据库
- 主从复制
- 读写分离
- 分表
- 分库
集中式数据库
反规范化设计
优点:
- 避免进行表之间的连接操作,可以提高数据操作的性能。
缺点:
- 数据的重复存储,浪费磁盘空间。
- 会产生数据不一致性问题。
分类
类型 | 说明 | 作用 |
---|---|---|
增加冗余列 | 指在多个表中具有相同的列。 | 在查询时避免连接操作。 |
增加派生列 | 增加的列可用通过表中其他数据计算生成。 | 在查询时减少计算量,从而加快查询速度。 |
重新组表 | 如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。 | 在查询时减少连接,从而加快查询速度。 |
水平分割表 | 按记录进行分割,把数据放到多个独立的表中。 | 主要用于表数据规模很大、表中数据相对独立或数据需要存放到多个介质上使用的场景。 |
垂直分割表 | 对表进行分割,将主键与部分列放到一个表中,主键与其他列放到另一个表中。 | 在查询时减少I/O次数,以提高查询效率。 |
保证数据的一致性方法
- 触发器
- 事务机制保证
- 应用保证
- 批处理脚本
分布式数据库
主从复制
主从复制,建立一个和主数据库完全一样的数据库环境,称为从数据库。
- 做数据的热备:作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
- 架构的扩展:业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个及其的I/O性能。
- 读写分离:使数据库能支持更大的并发。
读写分离
读写分离,设置不同的主/从数据库分别负责不同的操作。
- 主数据库负责数据的写操作。
- 从数据库负责数据的读操作。
通过角色分担的策略,分别提升读写性能,有效减少数据并发操作的延迟。
分表
分表,也叫分片,解决并发能力、I/O性能提升。
将一张大表分成若干小表,业务同时访问多个表。
分表是重在单个实例内部,一张表拆分称多个表。
- 垂直切分
- 水平切分
分库
分库,将原本存放在一个实例上众多分类的数据(表),分开存放到不同的实例上。有利于差异化管理。