数据库基础与 MySQL介绍
本文摘要介绍了数据库基础概念与MySQL架构核心内容。主要内容包括:1) 数据库的定义及其相较于文件系统的优势;2) 主流数据库产品特点,如MySQL、Oracle等;3) MySQL的基本使用方法和服务器连接方式;4) MySQL的物理体系架构和核心组件;5) SQL语言的分类;6) MySQL存储引擎的类型及特点对比,重点分析了InnoDB和MyISAM的适用场景。文章通过问答形式深入探讨了技
一、 数据库基础
1.1 什么是数据库
-
概念解释:数据库 (Database) 是一种为了高效存储、管理和检索海量数据而设计的系统化电子数据集合。相较于传统的文件系统,数据库通过复杂的底层数据结构和索引机制,提供了更高的数据一致性、并发控制以及事务安全。
-
笔记:
-
传统文件存储的缺陷:
-
文件的安全性问题(缺乏权限控制与加密)。
-
文件不利于数据查询和管理(缺乏高效索引,需全量遍历)。
-
文件不利于存储海量数据(受限于单文件大小和系统 IO 瓶颈)。
-
文件在程序中控制不方便(需手动处理文件流和解析逻辑)。
-
-
数据库存储介质:主要分为磁盘(Disk)和内存(Memory)。
-
核心价值:解决上述文件管理弊端,提供更有效的数据管理能力。掌握数据库是衡量程序员水平的重要核心指标。
-
-
发散思维 (Q&A):
-
Q: 既然内存数据库(如 Redis)读写极快,为什么还要保留磁盘介质的数据库?
-
A: 内存虽然速度快,但容量有限且成本高昂,且断电易失(易失性存储)。磁盘数据库(如 MySQL)通过 Buffer Pool 等缓存机制在性能和海量持久化存储之间取得了平衡。
-
1.2 主流数据库生态
-
概念解释:根据底层数据组织模型的不同,数据库主要分为关系型数据库(基于二维表结构,如 MySQL、Oracle)和非关系型数据库(如键值对、文档型)。
-
笔记:
-
SQL Server:微软产品,.Net 程序员首选,适用于中大型项目。
-
Oracle:甲骨文产品,适用于大型项目及复杂的业务逻辑,但高并发表现通常不如 MySQL。
-
MySQL:全球最受欢迎的关系型数据库(现属甲骨文),并发性能卓越,适合简单 SQL 处理,不适合过于复杂的底层业务逻辑。广泛应用于电商、SNS、论坛等场景。
-
PostgreSQL:加州大学伯克利分校开发的关系型数据库,开源协议极其宽泛(无论私用、商用、学术均可免费使用、修改和分发)。
-
SQLite:轻量级关系型数据库,完全遵守 ACID 原则,底层封装为一个极小的 C 库。专为嵌入式设备设计,资源占用极低(仅需几百 KB 内存)。
-
H2:纯 Java 开发的嵌入式数据库,本质是一个类库,可直接无缝嵌入至 Java 应用项目中。
-
1.3 MySQL 基本使用与服务器关系
-
概念解释:数据库管理系统 (DBMS) 是指运行在服务器上的软件程序(如 MySQL Server),它可以同时管理多个数据库 (Database)。每个数据库内部又包含多张表 (Table),表用于映射保存程序应用中的实体数据。层级关系:
Client -> MySQL Server (DBMS) -> 多个 Database -> 多张 Table。 -
发散思维 (Q&A):
-
Q: 为什么日常开发中,通常一个应用程序只对应创建一个数据库,而不是把所有数据揉在一个库里?
-
A: 主要是为了实现业务的解耦和权限隔离。不同应用的表隔离在不同库中,有助于后续的微服务拆分、独立备份以及分库分表架构的设计。
-
1.4 客户端连接
-
函数名:
mysql_client_connection -
命令原型:
Bash
mysql -h [主机IP] -P [端口号] -u [用户名] -p[密码] -
功能与参数说明:
-
-h 127.0.0.1:指定连接的数据库服务器 IP。若缺省,默认连接本地 (localhost)。 -
-P 3306:指定连接端口号。若缺省,MySQL 默认使用 3306 端口。 -
-u root:指定登录的用户名。 -
-p:提示输入密码(注意:若直接在-p后跟密码不能有空格)。 -
连接成功后,输入
help;或\h获取帮助,输入\c清除当前输入语句。
-
二、 MySQL 架构与核心组件
2.1 MySQL 物理体系架构
-
概念解释:可移植性 (Portability) 是指 MySQL 能够跨越多种操作系统平台(Unix/Linux、Windows、Mac、Solaris)稳定运行。虽然底层系统实现各异,但 MySQL 保证了各平台物理体系结构的一致性。
-
笔记:
-
架构自顶向下包含:
-
Client Connectors:JDBC, ODBC, .NET, PHP, Python, C API 等连接层。
-
MySQL Server:包含连接池 (Connection Pool)、SQL 接口 (SQL Interface)、解析器 (Parser)、优化器 (Optimizer) 和缓存 (Caches/Buffers)。
-
Pluggable Storage Engines (插件式存储引擎):负责核心数据的存取,如 InnoDB, MyISAM, Memory 等。
-
File System:底层文件系统及日志文件(Redo, Undo, Error log 等)。
![[Pasted image 20260525192407.png]]
-
-
2.2 SQL 分类
-
概念解释:SQL 按照功能范围被划分为不同的子集,用以规范化数据库对象定义、数据变更、权限控制等操作。
-
笔记:
-
DDL (Data Definition Language):数据定义语言,用于维护存储数据的结构。代表指令:
create,drop,alter。 -
DML (Data Manipulation Language):数据操纵语言,用于对具体数据进行增删改查。代表指令:
insert,delete,update。- DQL (Data Query Language):从 DML 中独立出的数据查询语言。代表指令:
select。
- DQL (Data Query Language):从 DML 中独立出的数据查询语言。代表指令:
-
DCL (Data Control Language):数据控制语言,主要负责权限管理和事务控制。代表指令:
grant,revoke,commit。
-
2.3 存储引擎 (Storage Engine)
-
概念解释:存储引擎 是数据库管理系统用来执行如何将数据写入磁盘、如何为数据建立索引、如何更新及查询数据的底层核心实现技术。MySQL 采用插件式存储引擎 (Pluggable),允许根据不同表的应用场景切换不同的引擎。
-
笔记:
-
查看支持的引擎:执行
show engines; -
主流存储引擎对比:
-
InnoDB (默认):支持事务 (Transactions)、行级锁 (Row-level locking)、外键 (Foreign keys)、MVCC。存储成本较高,适合绝大多数核心业务。
-
MyISAM:不支持事务和外键,采用表级锁。拥有较高的批量插入速度 (Bulk Insert Speed),支持 B-Tree、全文索引。适合读多写少且无事务要求的场景。
-
Memory:基于内存存储,使用 Hash 索引,速度极快但断电数据丢失,主要用于构建临时表。
-
Archive:用于归档,占用空间极低。
-
Blackhole:类似
/dev/null,写入的数据直接消失,通常用于特殊的复制拓扑结构中。
-
-
-
发散思维 (Q&A):
-
Q: 为什么 InnoDB 使用行级锁,而 MyISAM 使用表级锁?
-
A: 行级锁的并发粒度更细,能够支持高并发的写操作,这也是 InnoDB 适合现代复杂业务的原因。但行锁的开销更大(需维护锁状态),而 MyISAM 牺牲并发性换取了极致的查询和全表扫速度。
-
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)