MySQL 基础概念对照 · MySQL至索引
MySQL 基础概念对照
M4版本边界(2026-10-17): 本页作为数据类型、引擎与术语广度对照保留;ACID和隔离性的简表不能理解为并发事务完全互不影响或提交即不需要备份。现行事务快照与失败处理和完整应用给出8.4.7实际验证路径。
MySQL
MySQL 是一个开源的关系型数据库管理系统,广泛应用于 Web 应用程序的开发中。它提供了一个强大的、稳定的、高效的、可扩展的数据库解决方案,能够满足从小型网站到大型企业级应用的各种需求。
- 特点
- 关系型数据库管理系统(RDBMS):MySQL 是一种关系型数据库管理系统,它采用了关系模型来组织数据。数据存储在表中,表之间通过外键关联,形成了数据之间的关系。
- 开源性:MySQL 是开源软件,可以免费获取和使用。这使得它成为许多开发者和企业的首选数据库解决方案之一。
- 跨平台性:MySQL 可以在多种操作系统上运行,包括 Windows、Linux、Mac 等,因此具有很好的跨平台性。
- 多用户支持:MySQL 支持多用户同时访问数据库,可以设置不同的权限和访问级别,确保数据的安全性和完整性。
- SQL(Structured Query Language)支持:MySQL 使用 SQL 作为操作数据库的标准语言。通过 SQL,用户可以执行各种操作,包括数据的查询、插入、更新、删除等。
- 性能优化:MySQL 在设计和实现上对性能进行了优化,可以处理大规模的数据和高并发访问。它支持多种存储引擎,如 InnoDB、MyISAM 等,用户可以根据实际需求选择合适的存储引擎来优化性能。
- 事务支持:MySQL 支持事务,保证了数据的一致性和可靠性。用户可以使用事务来批量执行操作,并在需要时进行回滚或提交。
- 数据备份和恢复:MySQL 提供了备份和恢复数据库的工具和机制,可以定期备份数据库,以防止数据丢失或损坏,并在需要时进行数据恢复。
- 可扩展性:MySQL 是一个可扩展的数据库系统,可以通过添加更多的服务器节点来扩展数据库的性能和容量。它支持主从复制、分区、分片等技术来实现数据库的水平和垂直扩展。
- 社区支持和生态系统:MySQL 拥有庞大的用户社区和开发者社区,用户可以在社区中获取到丰富的资源、文档和支持。此外,MySQL 生态系统也非常丰富,有许多第三方工具和插件可以与 MySQL 集成,扩展其功能和应用场景。
事务
| 特性 | 描述 |
|---|---|
| 原子性(Atomicity) | 事务是一个不可分割的工作单位,要么全部执行成功,要么全部失败回滚。 |
| 一致性(Consistency) | 事务执行前后数据库的完整性约束不会被破坏,即使事务执行失败也不会导致数据处于不一致的状态。 |
| 隔离性(Isolation) | 隔离级别规定并发事务的可见性与相互影响;锁等待、快照和允许的读现象依级别及语句而异,见事务快照。 |
| 持久性(Durability) | 提交后的恢复保证依赖引擎、日志刷盘配置与故障模型;持久性不代替备份,也不能抵御所有介质损坏。 |
关系型数据库
关系型数据库是一种结构化的数据库,它使用了关系模型来组织和管理数据。关系型数据库的核心概念是表、行和列,数据以表的形式存储,每个表由多行(记录)组成,每行包含了多个列(字段)。这种组织方式使得数据之间的关系变得清晰和易于管理。
- 表(Table):表是关系型数据库中的基本单位,用于存储特定类型的数据。每个表由一系列行和列组成,行代表记录,列代表字段。表可以有不同的列,每列具有特定的数据类型,如整数、字符、日期等。
- 行(Row):行也称为记录或元组,代表表中的一个实体或数据项。每行包含了一组相关的数据,每个字段对应一个数据值。行之间的顺序一般没有特定意义,可以通过主键来唯一标识和区分各行。
- 列(Column):列是表的结构化部分,用于定义每个记录的属性。每列具有特定的数据类型和约束,如整数、字符、日期、唯一性约束、非空约束等。列名通常用于标识和访问特定的数据项。
- 主键(Primary Key):主键是表中用于唯一标识每行记录的一列或一组列。主键必须是唯一的,且不能为空。通过主键可以快速定位和访问表中的特定记录,保证数据的完整性和一致性。
- 外键(Foreign Key):外键是表中的一列,它建立了与其他表之间的关联关系。外键用于指定一个表中的数据与另一个表中的数据之间的关系,通过外键可以实现表之间的引用完整性约束。
- 关系(Relationship):关系是指表之间的联系和连接。通过外键建立的关联关系可以帮助我们在多个表之间进行数据查询和操作,实现数据的关联和一致性。
- SQL(Structured Query Language):SQL 是关系型数据库管理系统用于操作数据的标准语言。通过 SQL,用户可以执行各种操作,包括数据的查询、插入、更新、删除等,以及表的创建、修改、删除等管理操作。
- 事务(Transaction):事务是一系列数据库操作的集合,它要么全部执行成功,要么全部失败,具有原子性、一致性、隔离性和持久性(ACID 特性)。
- 范式(Normalization):范式是用于设计关系型数据库模式的一组规范化原则,旨在减少数据冗余和提高数据的存储效率。通过范式化设计,可以确保数据库的数据结构合理和标准化。
数据引擎
| 存储引擎 | 特点 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|---|
| InnoDB | 支持事务、行级锁、外键约束 | 数据完整性强,支持高并发 | 内存消耗较大,性能相对较低 | 事务处理型应用,如电子商务平台、金融系统等 |
| MyISAM | 不支持事务、支持全表锁、查询性能较快 | 查询性能好,适用于读操作较多的场景 | 不支持事务、容易出现表级锁、不适合高并发写入 | 读操作较多、写操作较少的应用,如博客、新闻网站等 |
| Memory | 将数据存储在内存中,快速的数据访问速度 | 读写速度极快,适用于临时表和缓存数据 | 数据不持久化,服务器重启后数据丢失 | 临时表、缓存数据等需要快速访问的临时性数据存储 |
| CSV | 将数据存储在 CSV 文件中 | 适用于导入/导出数据到 CSV 文件 | 不支持事务、不支持索引、不适合大规模数据操作 | 导入/导出数据到 CSV 文件 |
| Archive | 高压缩比,适用于数据归档和备份等场景 | 压缩比高,适用于归档和备份数据 | 不支持事务、不支持索引、不适合频繁读写操作 | 数据归档、备份等场景 |
| Blackhole | 写入的数据被丢弃,适用于数据复制和转发 | 用于数据复制和转发 | 不保存数据,仅用于数据转发 | 数据复制、数据转发等场景 |
| NDB Cluster | 分布式存储和高可用性特性 | 提供高可用性和水平扩展能力,适用于分布式存储 | 配置和管理复杂,性能相对较低 | 需要高可用性和水平扩展能力的分布式存储场景 |
SQL 语言
| 分类 | 简称 | 描述 |
|---|---|---|
| DDL (Data Definition Language) | 定义 | 用于定义、修改和删除数据库对象(表、索引等)的语言。包括 CREATE、ALTER、DROP 等命令。 |
| DML (Data Manipulation Language) | 操作 | 用于对数据库中的数据进行操作的语言。包括 INSERT、UPDATE、DELETE 等命令。 |
| DQL (Data Query Language) | 查询 | 用于从数据库中检索数据的语言。主要命令是 SELECT。 |
| DCL (Data Control Language) | 控制 | 用于控制数据库访问权限和用户管理的语言。包括 GRANT、REVOKE 等命令。 |
| TCL (Transaction Control Language) | 事务 | 用于管理数据库事务的语言。包括 COMMIT、ROLLBACK、SAVEPOINT 等命令。 |
索引
| 索引类型 | 特点 | 优势 | 劣势 | 适用场景 |
|---|---|---|---|---|
| B-Tree 索引 | 支持精确查找和范围查找,适用于大多数查询 | 支持范围查询、排序和分组等操作 | 查询的效率受数据量和索引列的数据分布影响 | WHERE 子句中的条件查询,等值查询、范围查询等操作 |
| 哈希索引 | 适用于等值查询,具有快速的查找速度 | 查找速度快 | 不支持范围查询、排序和分组等操作 | 内存中的临时表和内存表 |
| 全文索引 | 用于全文搜索,支持文本内容的快速检索 | 支持对文本内容进行全文搜索和相关性排序 | 不适用于精确匹配和排序 | 需要进行全文搜索的场景,如博客、论坛等包含大量文本内容的应用 |
| 空间索引 | 用于对空间数据进行查询,支持空间对象的查询 | 支持距离查询、相交查询等空间操作 | 不适用于非空间数据 | 地图应用、位置服务等需要处理空间数据的应用场景 |
继续阅读
- 知识专题
- 知识专题
- 知识专题