在数据驱动的时代,数据库是存储、管理和处理数据的核心工具。MySQL 作为最流行的开源关系型数据库之一,广泛应用于 Web 开发、企业系统等场景。本文将从 MySQL 的基础概念出发,逐步深入到安装配置、SQL 操作、权限管理与备份策略,帮助初学者系统掌握 MySQL 核心技能。

一、MySQL 核心概念辨析

要学好 MySQL,首先需要理清数据库领域的几个核心术语,避免概念混淆。

1. 三大核心组件

  • 数据库(Database,简称 DB)按照特定格式存储数据的文件集合,本质是 “数据仓库”。例如,一个电商系统的 “用户数据库”“订单数据库”,分别存储用户信息和订单记录。数据库管理数据的优势:降低冗余、支持数据共享、保障数据完整性(如唯一性约束)、确保数据安全(权限控制)。

  • 数据库管理系统(DBMS)专门用于管理数据库的软件,提供数据的增、删、改、查等操作接口。MySQL、Oracle、SQL Server 等均属于 DBMS。常见 DBMS 对比:

    DBMS特点适用场景
    MySQL开源免费、轻量高效中小型系统、Web 应用
    Oracle功能强大、稳定性高大型企业级系统
    SQL Server微软生态、易用性强Windows 环境企业应用
  • SQL(Structured Query Language)操作关系型数据库的标准化语言,适用于所有关系型 DBMS(如 MySQL、Oracle 通用)。通过 SQL 可完成 “创建数据库”“查询数据”“修改表结构” 等操作。

2. 数据库类型分类

根据数据存储模型,数据库主要分为关系型数据库非关系型数据库(NoSQL) 。

(1)关系型数据库

以 “表” 为基本存储单元,表与表之间通过 “关联关系”(如外键)组织数据,数据结构遵循严格的范式。常见关系型数据库:

  • MySQL/MariaDB(开源主流)
  • Oracle(商业旗舰)
  • DB2(IBM 旗下,大型机场景)
  • 国产数据库:达梦、人大金仓(政务、金融场景)
  • TiDB(分布式关系型数据库,兼容 MySQL)
(2)非关系型数据库(NoSQL)

不依赖传统关系模型,存储格式灵活(如键值对、文档、列族),适合高并发、大数据场景。常见 NoSQL 数据库:

  • Redis:键值型数据库,主打缓存(如会话存储、热点数据缓存)
  • MongoDB:文档型数据库,适合存储非结构化数据(如用户评论、日志)

3. 关系模型核心概念

关系型数据库的设计基于 “关系模型”,需理解以下三个核心要素:

概念定义数据库对应对象
实体(Entity)现实世界中可区分的对象(人、物、概念)表(如 “学生表” 对应 “学生” 实体)
属性(Attribute)实体的特征(如学生的 “姓名”“学号”)表的列(字段)
联系(Relationship)实体之间的关联(如 “学生选课”)关联表(如 “学生选课表”)
实体间的三种联系类型
  • 一对一(1:1):一个实体对应一个关联实体。例如,“部门” 与 “部门负责人”(一个部门只有一个负责人,一个负责人只管理一个部门)。
  • 一对多(1:N):一个实体对应多个关联实体。例如,“教师” 与 “课程”(一个教师可教多门课,一门课只归一个教师)。
  • 多对多(M:N):两个实体互相对应多个关联。例如,“学生” 与 “课程”(一个学生可选多门课,一门课可被多个学生选),需通过 “中间表”(如选课表)实现关联。

4. 关系数据库的基本结构

从 “库→表→数据” 的层级结构,理解 MySQL 的存储逻辑:

  • 库(Database):数据的顶层容器,一个库可包含多个表。例如,“电商库” 包含 “用户表”“商品表”“订单表”。
  • 表(Table):数据的存储载体,由 “行” 和 “列” 组成。例如,“用户表” 的列是 “用户 ID、姓名、手机号”,行是具体的用户记录。
  • 行(Record):表中的一条数据,对应一个实体实例。例如,“用户表” 中 “ID=1001,姓名 = 张三,手机号 = 138xxxx1234” 是一行记录。
  • 列(Column):表的一个属性,每个列有固定数据类型(如 “手机号” 是字符串类型,“年龄” 是整数类型)。
  • 字段(Field):行与列的交叉点,存储单个数据值(如 “张三” 是 “姓名” 列的一个字段值)。

二、MySQL 安装与初始化(Linux 环境)

以 CentOS/RHEL 系统为例,讲解 MySQL(含 MariaDB)的安装与基础配置,Windows 环境可通过官方安装包图形化操作,核心步骤类似。

1. 安装方式对比

  • Yum 安装:适合快速部署,自动处理依赖,推荐新手使用。
  • 编译安装:需手动配置编译参数(如指定安装路径、启用特定功能),适合需要自定义环境的场景(需提前安装 cmake 工具)。

2. 具体安装步骤

(1)MariaDB 安装(兼容 MySQL,开源默认)
# 安装服务端和客户端
yum install -y mariadb-server mariadb
(2)MySQL 官方版本安装
# 1. 配置MySQL Yum源(参考MySQL官方文档,此处省略)
# 2. 安装服务端和客户端
yum install -y mysql-server mysql
(3)启动服务并设置开机自启
# 启动MySQL服务
systemctl start mysqld.service
# 设置开机自启
systemctl enable --now mysqld.service
# 验证服务状态
systemctl status mysqld.service
(4)本地登录测试

MySQL 默认管理员用户为root(与系统 root 无关),初始无密码,直接登录:

mysql
# 登录成功后显示如下信息
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.40 MySQL Community Server (GPL)
MySQL [(none)]>  # [(none)]表示当前未选择任何数据库
(5)设置 root 密码

首次登录后,需立即设置 root 密码(避免安全风险):

# 退出MySQL客户端
exit;
# 使用mysqladmin工具设置密码(将123.com替换为实际密码)
mysqladmin -uroot password '123.com'
# 带密码登录(后续登录需验证)
mysql -uroot -p123.com

3. MySQL 核心目录与配置文件

(1)关键目录(Yum 安装默认路径)
  • /var/lib/mysql:数据存储目录(库、表文件均在此处)
  • /var/log/mysqld/mysqld.log:日志文件(错误日志、启动日志)
  • /etc/my.cnf:主配置文件(核心配置如端口、字符集)
(2)主配置文件(/etc/my.cnf)核心参数
[mysqld]
datadir=/var/lib/mysql          # 数据存储路径
socket=/var/lib/mysql/mysql.sock# 本地连接Socket文件
port=3306                       # 默认监听端口(可修改)
character-set-server=utf8       # 服务端默认字符集(避免中文乱码)
[mysqld_safe]
log-error=/var/log/mysqld/mysqld.log  # 错误日志路径
pid-file=/var/run/mysqld/mysqld.pid    # 进程PID文件

三、MySQL 常用命令与默认数据库

掌握 MySQL 的基础命令,是后续操作的前提。本节涵盖 “登录命令”“默认数据库”“系统信息查询” 等核心操作。

1. MySQL 客户端登录命令

mysql是 MySQL 的命令行客户端工具,语法为:

mysql [选项] [数据库名]
常用选项
选项说明示例
-u指定登录用户-uroot(使用 root 用户)
-p指定用户密码(可直接跟密码)-p123.com(密码为123.com
-h指定数据库 IP / 域名(远程登录)-h192.168.1.100(远程服务器 IP)
-P指定端口号(默认 3306)-P3307(连接 3307 端口)
-e终端直接执行 SQL 命令(不进入客户端)-e "show databases"(查看所有库)
登录示例
# 本地登录(默认3306端口)
mysql -uroot -p123.com
# 远程登录(连接192.168.1.100的3306端口)
mysql -uroot -p123.com -h192.168.1.100 -P3306
# 终端直接执行SQL(查看jx数据库的表)
mysql -uroot -p123.com -e "use jx; show tables;"

2. MySQL 默认数据库

安装 MySQL 后,默认会创建 4 个系统数据库,各自承担不同角色,切勿随意删除

(1)information_schema(信息数据库)

存储所有数据库、表、列的元数据(描述数据的数据),任何登录用户均可读取(常用于 SQL 注入检测)。核心表示例:

  • COLUMNS:存储所有表的列信息(如列名、数据类型)
  • TABLES:存储所有表的基本信息(如表名、存储引擎、创建时间)
  • ENGINES:存储 MySQL 支持的存储引擎(如 InnoDB、MyISAM)
  • PROCESSLIST:查看当前 MySQL 运行的进程(如正在执行的 SQL 语句)
(2)mysql(核心系统数据库)

MySQL 的 “配置数据库”,存储用户账号、权限、系统参数等关键信息,删除会导致 MySQL 无法运行。核心表示例:

  • user:存储所有用户账号信息(用户名、密码、允许登录的 IP)
  • db:存储用户对数据库的权限(如某用户是否可操作 jx 数据库)
  • tables_priv:存储用户对表的权限(如某用户是否可查询 jx.stu 表)
  • slow_log:存储执行时间超过阈值的 “慢查询”(用于性能优化)
(3)performance_schema(性能监控数据库)

用于监控 MySQL 的资源使用情况(如 CPU、内存、锁等待),帮助定位性能问题。核心表示例:

  • threads:存储 MySQL 当前所有线程信息(线程 ID、状态)
  • events_waits_history:存储历史等待事件(如锁等待时间)
  • file_summary_by_instance:存储文件 I/O 统计(如某表的读写次数)
(4)sys(简化性能分析数据库)

基于performance_schemainformation_schema的视图集合,提供更易懂的性能分析结果(如sys.schema_unused_indexes查看未使用的索引)。

3. 常用系统查询命令

登录 MySQL 客户端后,通过以下命令查看系统信息:

-- 1. 查看所有数据库
show databases;
-- 2. 查看当前登录用户
select user();
-- 3. 查看当前使用的数据库
select database();
-- 4. 查看MySQL版本
select version();
-- 5. 查看用户权限列表(所有可用权限)
show privileges;
-- 6. 查看指定用户的权限(如查看root@localhost的权限)
show grants for root@localhost;

四、SQL 语言核心:DDL/DML/DCL/DQL

SQL 语言按功能分为四大类,是操作 MySQL 的核心工具。建议熟记语法,多动手练习

1. DDL:数据定义语言(操作数据库 / 表结构)

用于创建、修改、删除数据库或表结构,关键字:CREATE(创建)、ALTER(修改)、DROP(删除)。

(1)数据库操作
-- 1. 创建数据库(指定字符集为utf8,避免中文乱码)
create database jx character set utf8;
-- 2. 查看数据库创建语句(验证字符集)
show create database jx;
-- 3. 切换到jx数据库(后续操作默认在jx库中)
use jx;
-- 4. 删除数据库(谨慎操作!会删除所有表和数据)
drop database jx;
(2)表结构操作

以 “学生表(stu)” 为例,讲解表的创建、修改、删除。

① 创建表(CREATE TABLE)

语法:create table 表名(列名 数据类型 [约束], ...);示例:创建 “学生表”,包含 ID、姓名、年龄、手机号、入学时间字段:

create table stu (
    id int primary key auto_increment,  -- 主键(唯一标识),自动增长
    name varchar(50) not null,          -- 姓名,非空
    age tinyint unsigned,               -- 年龄,无符号(非负)
    phone char(11),                     -- 手机号,固定11位
    enroll_date date                    -- 入学时间,日期类型
);
② 查看表结构(DESC)
-- 查看stu表的列信息(类型、约束、默认值)
desc stu;
③ 修改表结构(ALTER TABLE)

常见修改场景:

-- 1. 修改表名(将stu改为student)
alter table stu rename to student;
-- 2. 添加列(在age后添加“性别”列,默认值为“男”)
alter table student add column gender char(2) default '男' after age;
-- 3. 修改列类型(将phone的长度改为13,支持国际号码)
alter table student modify column phone char(13);
-- 4. 修改列名(将gender改为sex)
alter table student change column gender sex char(2);
-- 5. 删除列(删除phone列)
alter table student drop column phone;
④ 删除表(DROP TABLE)
-- 谨慎操作!删除student表及所有数据
drop table student;

2. DML:数据操作语言(操作表数据)

用于插入、修改、删除表中的数据,关键字:INSERT(插入)、UPDATE(修改)、DELETE(删除)。

(1)插入数据(INSERT)
① 单行插入

语法:insert into 表名(列1, 列2, ...) values(值1, 值2, ...);示例:向 student 表插入一条学生记录:

insert into student(name, age, sex, enroll_date)
values('张三', 20, '男', '2024-09-01');
② 批量插入

一次性插入多条数据,效率高于单行插入:

insert into student(name, age, sex, enroll_date)
values
('李四', 19, '女', '2024-09-01'),
('王五', 21, '男', '2023-09-01'),
('赵六', 20, '女', '2024-09-01');
(2)修改数据(UPDATE)

语法:update 表名 set 列1=值1, 列2=值2... where 条件;必须加where条件,否则会修改全表数据!示例:将 “张三” 的年龄改为 21:

update student set age=21 where name='张三';
(3)删除数据(DELETE)

语法:delete from 表名 where 条件;必须加where条件,否则会删除全表数据!示例:删除 “王五” 的记录:

delete from student where name='王五';

注意:DELETE删除数据后,自增 ID 不会重置;若需清空表并重置 ID,使用TRUNCATE TABLE 表名;(但TRUNCATE无法恢复数据,谨慎使用)。

3. DCL:数据控制语言(权限管理)

用于管理用户账号和权限,关键字:GRANT(授权)、REVOKE(回收权限)、CREATE USER(创建用户)。

(1)创建用户

语法:create user '用户名'@'允许登录的IP' identified by '密码';允许登录的IP支持通配符:

  • 192.168.1.%:允许 192.168.1 网段所有 IP 登录
  • %:允许任意 IP 登录(生产环境不推荐,风险高)

示例:

-- 创建用户webuser,允许192.168.115网段登录,密码123.com
create user 'webuser'@'192.168.115.%' identified by '123.com';
(2)授权用户(GRANT)

语法:grant 权限列表 on 库.表 to '用户名'@'IP';

  • 权限列表:可指定单个权限(如select)、多个权限(如select,insert)或所有权限(all
  • 库。表:*.*表示所有库所有表,jx.*表示 jx 库所有表,jx.student表示 jx 库的 student 表

示例:

-- 授予webuser对jx库所有表的查询、插入权限
grant select,insert on jx.* to 'webuser'@'192.168.115.%';
-- 授予root用户所有库所有表的所有权限(管理员权限)
grant all on *.* to 'root'@'%' identified by '123.com';
-- 授权后刷新权限(立即生效)
flush privileges;
(3)回收权限(REVOKE)

语法:revoke 权限列表 on 库.表 from '用户名'@'IP';

示例:

-- 回收webuser对jx库所有表的插入权限
revoke insert on jx.* from 'webuser'@'192.168.115.%';
flush privileges;
(4)查看用户权限
-- 查看webuser的权限详情
show grants for 'webuser'@'192.168.115.%';
(5)删除用户
-- 删除webuser用户
drop user 'webuser'@'192.168.115.%';

4. DQL:数据查询语言(核心:SELECT)

SELECT是 SQL 中最常用的命令,用于从表中查询数据,支持条件筛选、排序、分组、分页等复杂操作。以下结合 “学生成绩表(sc,包含 name 姓名、class 班级、score 成绩)” 演示核心用法。

(1)基础查询
-- 1. 查询sc表所有数据(*表示所有列,不推荐大表使用,效率低)
select * from sc;
-- 2. 查询指定列(姓名、班级、成绩)
select name, class, score from sc;
-- 3. 别名查询(给列名起中文别名,便于阅读)
select name as 姓名, class as 班级, score as 成绩 from sc;
-- 4. 去重查询(查询所有不重复的班级)
select distinct class from sc;
(2)条件筛选(WHERE)

结合比较运算符、逻辑运算符实现精准筛选,常见运算符如下:

类型运算符说明
比较运算符>, >=, <, <=, =, !=大于、大于等于、小于、小于等于、等于、不等于
范围匹配BETWEEN a AND b在 a 到 b 之间(包含 a 和 b)
集合匹配IN (值 1, 值 2, ...)在指定集合内
空值判断IS NULL / IS NOT NULL为空 / 不为空
模糊匹配LIKE% 匹配任意字符,_匹配单个字符
逻辑运算符AND(&&)、OR()、NOT(!)与、或、非

示例:

-- 1. 查询成绩大于80分的学生
select name, score from sc where score > 80;
-- 2. 查询成绩在60-80分之间的学生
select name, score from sc where score between 60 and 80;
-- 3. 查询1班和3班的学生
select name, class from sc where class in (1, 3);
-- 4. 查询姓名含“张”的学生(%匹配任意字符)
select name from sc where name like '%张%';
-- 5. 查询成绩不为空且班级为2班的学生
select name, score from sc where score is not null and class = 2;
(3)排序(ORDER BY)

语法:order by 列名 [asc/desc]asc升序(默认),desc降序。

示例:

-- 1. 按成绩升序排列(从低到高)
select name, score from sc order by score;
-- 2. 按班级降序、成绩升序排列(先按班级排序,同班级按成绩排序)
select name, class, score from sc order by class desc, score asc;
(4)聚合函数

对数据进行统计计算,常见聚合函数:count()(计数)、sum()(求和)、avg()(平均值)、max()(最大值)、min()(最小值)。

示例:

-- 1. 统计学生总数(count(*)包含空值,count(score)不包含score为空的记录)
select count(*) as 学生总数 from sc;
-- 2. 计算所有学生的成绩总和、平均值、最高分、最低分
select
    sum(score) as 成绩总和,
    avg(score) as 平均成绩,
    max(score) as 最高分,
    min(score) as 最低分
from sc;
-- 3. 统计每个班级的学生数量(按班级分组)
select class as 班级, count(*) as 学生数量 from sc group by class;
(5)分组筛选(HAVING)

WHERE用于筛选行数据,HAVING用于筛选分组后的结果(需结合GROUP BY使用)。

示例:

-- 查询学生数量大于5人的班级(先分组统计,再筛选分组结果)
select class as 班级, count(*) as 学生数量
from sc
group by class
having count(*) > 5;
(6)分页查询(LIMIT)

语法:limit [起始索引], 每页条数,起始索引从 0 开始(不写默认从 0 开始),适合大数据量分页展示(如页面分页)。

示例:

-- 1. 查询前10条数据(起始索引0,取10条)
select name, score from sc limit 10;
-- 2. 查询第11-20条数据(起始索引10,取10条)
select name, score from sc limit 10, 10;
(7)子查询

将一个查询结果作为另一个查询的条件,常见关键词:inexists

示例:

-- 查询成绩高于平均成绩的学生(先查平均成绩,再作为条件)
select name, score
from sc
where score > (select avg(score) from sc);
(8)多表查询

当数据分散在多个表中时,需通过 “关联字段”(如学生 ID)关联查询,常见类型:内连接、左外连接、右外连接。

以 “学生表(student,含 id、name、class)” 和 “成绩表(sc,含 id、student_id、score)” 为例(student.idsc.student_id为关联字段):

① 内连接(INNER JOIN)

只查询两表中 “关联字段匹配” 的数据。

select s.name as 姓名, s.class as 班级, sc.score as 成绩
from student s  -- 给student起别名s
inner join sc on s.id = sc.student_id;  -- 关联条件:学生ID匹配
② 左外连接(LEFT JOIN)

查询 “左表(student)所有数据”,右表(sc)匹配不到的字段显示为 NULL。

select s.name as 姓名, s.class as 班级, sc.score as 成绩
from student s
left join sc on s.id = sc.student_id;
③ 右外连接(RIGHT JOIN)

查询 “右表(sc)所有数据”,左表(student)匹配不到的字段显示为 NULL。

select s.name as 姓名, s.class as 班级, sc.score as 成绩
from student s
right join sc on s.id = sc.student_id;

五、MySQL 数据类型(核心基础)

选择合适的数据类型是数据库设计的关键,直接影响存储效率和查询性能。MySQL 支持多种数据类型,以下分类讲解常用类型及使用场景。

1. 整型(整数类型)

用于存储整数(如年龄、数量、ID),不同类型占用字节和取值范围不同。

数据类型占用字节有符号取值范围无符号取值范围(unsigned)适用场景
TINYINT1-128 ~ 1270 ~ 255枚举值(如性别:1 男 0 女)
SMALLINT2-32768 ~ 327670 ~ 65535小范围统计(如库存数量)
INT4-2147483648 ~ 21474836470 ~ 4294967295常用(如用户 ID、订单号)
BIGINT8-9e18 ~ 9e180 ~ 1.8e19超大整数(如交易量、点击量)

注意

  • INT(M)中的M仅表示 “显示宽度”,与存储大小无关(如INT(3)INT(10)均占用 4 字节),仅在zerofill(0 填充)时生效(如INT(3) zerofill存储 1 时显示 001)。
  • 若确定数据非负,建议加unsigned(如年龄、ID),扩大取值范围。

2. 浮点型与定点型(小数类型)

用于存储小数(如价格、成绩、重量),需区分 “浮点型(精度损失)” 和 “定点型(精度准确)”。

数据类型占用字节取值范围精度特点适用场景
FLOAT4-3.4e38 ~ 3.4e38精度 6-7 位(可能损失)非精确小数(如温度、重量)
DOUBLE8-1.8e308 ~ 1.8e308精度 15-16 位(可能损失)较高精度需求(如科学计算)
DECIMAL(M,D)M+2依赖 M 和 D(M 整数位 + 小数位)精度准确(字符串存储)精确小数(如价格、金额)

示例

  • DECIMAL(5,2):表示总长度 5 位,小数位 2 位(取值范围:-999.99 ~ 999.99),适合存储价格(如 99.99 元)。
  • 避免用=判断浮点型是否相等(如FLOAT(1.2)可能存储为 1.1999999),需用BETWEEN或转换为 DECIMAL。

3. 日期时间类型

用于存储日期和时间(如注册时间、订单创建时间),不同类型适用场景不同。

数据类型占用字节取值范围格式适用场景
YEAR11901 ~ 2155YYYY仅存储年份(如出生年份)
DATE31000-01-01 ~ 9999-12-31YYYY-MM-DD仅存储日期(如出生日期)
TIME3-838:59:59 ~ 838:59:59HH:MM:SS仅存储时间(如打卡时间)
DATETIME81000-01-01 ~ 9999-12-31YYYY-MM-DD HH:MM:SS日期 + 时间(如订单创建时间)
TIMESTAMP41970-01-01 ~ 2038-01-19YYYY-MM-DD HH:MM:SS自动更新时间(如最后修改时间)

核心区别

  • DATETIME:取值范围大,不依赖时区,需手动插入时间。
  • TIMESTAMP:取值范围小,依赖数据库时区,可设置 “自动更新”(如DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,数据修改时自动更新时间)。

4. 字符串类型

用于存储文本(如姓名、手机号、地址),常用类型:CHARVARCHARTEXT

数据类型特点长度范围占用空间适用场景
CHAR(M)固定长度0 ~ 255始终占用 M 字节短固定长度文本(手机号、身份证号)
VARCHAR(M)可变长度0 ~ 65535实际长度 + 1 字节(记录长度)变长文本(姓名、地址)
TEXT大文本0 ~ 65535实际长度 + 2 字节长文本(评论、文章内容)
MEDIUMTEXT中等大文本0 ~ 16MB实际长度 + 3 字节超大文本(日志、富文本)

示例

  • 手机号固定 11 位,用CHAR(11)(效率高于VARCHAR)。
  • 姓名长度不固定(2-8 字),用VARCHAR(20)(节省空间)。
  • 文章内容用TEXT(避免VARCHAR长度不足)。

5. 特殊类型

  • ENUM(枚举类型):只能从指定选项中选一个值,如性别(ENUM('男','女','未知')),节省存储空间,避免无效值。
  • SET(集合类型):可从指定选项中选多个值,如兴趣(SET('篮球','足球','读书')),但实际使用中更推荐用 “关联表” 存储(如用户兴趣表),便于扩展。
  • NULL 类型:表示 “无值”,但需注意:NULL != ''(空字符串)、NULL != 0,判断 NULL 需用IS NULL/IS NOT NULL,且 NULL 会影响查询效率,建议尽量避免字段默认 NULL(可设默认值如空字符串)。

六、MySQL 数据库备份与恢复(生产必备)

数据是企业核心资产,备份是防止数据丢失的最后防线。本节讲解 MySQL 备份的核心概念、工具及实战案例。

1. 备份核心概念

(1)备份类型

按不同维度分类,选择需结合业务需求(如是否允许停机、数据一致性要求):

分类维度类型特点适用场景
是否停机冷备(Cold Backup)备份时数据库关闭,读写均不可用非核心业务、维护窗口
温备(Warm Backup)备份时数据库在线,仅支持读,不支持写低写入场景
热备(Hot Backup)备份时数据库正常读写,业务无感知核心业务(如电商、金融)
备份范围完全备份备份全部数据,耗时久、占用空间大基础备份(如每天凌晨全量)
差异备份备份 “上次完全备份后” 新增的数据增量场景(如每 6 小时差异)
增量备份备份 “上次备份后” 新增的数据(全量 / 增量)高频备份(如每小时增量)
备份内容