系统架构设计师—案例分析—数据库篇—数据库性能优化

devtools/2025/3/16 10:38:42/

文章目录

  • 集中式数据库
    • 反规范化设计
      • 分类
      • 保证数据的一致性方法
  • 分布式数据库
    • 主从复制
    • 读写分离
    • 分表
    • 分库

集中式数据库

反规范化设计

优点:

  • 避免进行表之间的连接操作,可以提高数据操作的性能。

缺点:

  • 数据的重复存储,浪费磁盘空间。
  • 会产生数据不一致性问题。

分类

类型说明作用
增加冗余列指在多个表中具有相同的列。在查询时避免连接操作。
增加派生列增加的列可用通过表中其他数据计算生成。在查询时减少计算量,从而加快查询速度。
重新组表如果许多用户需要查看两个表连接出来的结果数据,则把这两个表重新组成一个表来减少连接而提高性能。在查询时减少连接,从而加快查询速度。
水平分割表按记录进行分割,把数据放到多个独立的表中。主要用于表数据规模很大、表中数据相对独立或数据需要存放到多个介质上使用的场景。
垂直分割表对表进行分割,将主键与部分列放到一个表中,主键与其他列放到另一个表中。在查询时减少I/O次数,以提高查询效率。

保证数据的一致性方法

  1. 触发器
  2. 事务机制保证
  3. 应用保证
  4. 批处理脚本

分布式数据库

主从复制

主从复制,建立一个和主数据库完全一样的数据库环境,称为从数据库

  • 做数据的热备:作为后备数据库,主数据库服务器故障后,可切换到从数据库继续工作,避免数据丢失。
  • 架构的扩展:业务量越来越大,I/O访问频率过高,单机无法满足,此时做多库的存储,降低磁盘I/O访问的频率,提高单个及其的I/O性能。
  • 读写分离:使数据库能支持更大的并发。

读写分离

读写分离,设置不同的主/从数据库分别负责不同的操作。

通过角色分担的策略,分别提升读写性能,有效减少数据并发操作的延迟。

分表

分表,也叫分片,解决并发能力、I/O性能提升。
将一张大表分成若干小表,业务同时访问多个表。
分表是重在单个实例内部,一张表拆分称多个表。

  • 垂直切分
  • 水平切分

分库

分库,将原本存放在一个实例上众多分类的数据(表),分开存放到不同的实例上。有利于差异化管理。


http://www.ppmy.cn/devtools/167527.html

相关文章

Android 手机启动过程

梳理 为了梳理思路,笔者画了一幅关于 Android 手机启动的过程图片内容纯属个人见解,如有错误,欢迎各位指正

历年云南大学计算机复试上机真题

历年云南大学计算机复试机试真题 在线评测:传送门:pgcode.cn 喝饮料 题目描述 商店里有 n 中饮料,第 i 种饮料有 mi 毫升,价格为 wi。 小明现在手里有 x 元,他想吃尽量多的饮料,于是向你寻求帮助&#x…

RPA 职业前景:个人职场发展的 “新机遇”

1. RPA职业定义与范畴 1.1 RPA核心概念 机器人流程自动化(RPA)是一种通过软件机器人模拟人类操作,自动执行重复性、规则性任务的技术。RPA的核心在于其能够高效、准确地处理大量数据和流程,减少人工干预,从而提高工作…

C++析构函数

一、概念和特性 析构函数是特殊的成员函数,主要任务是清理对象析构函数是在类名前加上 ~析构函数无参数,无返回值一个类只有一个析构函数析构函数会在对象生命周期结束后自动调用先构造的后析构,后构造的先析构 二、默认析构函数 不写析构函…

嵌入式硬件: GPIO与二极管基础知识详解

1. 前言 在嵌入式系统和硬件开发中,GPIO(通用输入输出)是至关重要的控制方式,而二极管作为基础电子元件,广泛应用于信号整流、保护电路等。本文将从基础原理出发,深入解析GPIO的输入输出模式,包…

专题三山脉数组的峰顶索引

1.题目 题目分析: 给一个数组,然后找到最大值位置的索引,也就是峰值的索引。 2.算法原理 较为明显的二段性,像金字塔模样,就可以用二分查找来解决,最大值是在左边区域,所以处理时leftmid&…

MySQL(事物下)

目录 一 多版本并发控制( MVCC )是一种用来解决 读-写冲突 的无锁并发控制 1. 前置知识 示例: 二 Read View 1. 当事物进行快照读(读历史数据)会MySQL会创建一个Read Vidw类对象,用来记录和当前一起并发的事物(活跃的事物)&a…

表单 schema 配置化

一、前沿 基于 Ant Design Vue 组件库实现了表单的配置化生成,通过 schema 配置化的方式实现表单的动态渲染、数据绑定和更新等功能,而提交按钮及获取数据逻辑由使用方自行提供。通过 schema 对象来定义表单的结构和属性,modelData 对象存储…