MySQL数据库入门|从零搞懂数据库基础、架构与存储引擎

MySQL数据库入门|从零搞懂数据库基础、架构与存储引擎

前言

在后端开发的世界里,数据库是绕不开的核心。我们写的业务系统产生的用户数据、订单数据、文章数据,总不能只存在程序内存里,程序一关数据就全部消失。数据库就是用来解决数据持久存储、高效查询管理的核心技术。今天就带大家梳理MySQL基础知识点,从数据库概念、主流产品、MySQL配置、SQL分类,再到底层架构和存储引擎,一次性搞懂基础核心。

一、什么是数据库?为什么要用数据库

数据库诞生于20世纪60年代末,专门解决数据存储、查询、修改、统计这类非数值计算问题。

使用数据库能带来十大核心能力:

  1. 数据持久化:数据保存到磁盘,程序关闭、服务器重启数据不会丢失。
  2. 数据结构化:以规范格式存储,方便管理查询。
  3. 数据完整性:保障数据准确、不出现错乱。
  4. 并发控制:多人同时读写数据,保证数据不乱。
  5. 安全性:权限控制、数据加密,防止非法访问。
  6. 可扩展性:数据量上涨可以横向、纵向扩容。
  7. 备份恢复:数据损坏丢失可以还原。
  8. 查询优化:内置优化器,快速执行复杂查询。
  9. 事务管理:一组操作要么全部成功,要么全部失败。
  10. 多用户支持:支持大量用户同时操作数据。

主流数据库分类

数据库分为关系型数据库和**非关系型数据库(NoSQL)**两大类。

关系型数据库(二维表格模型)
  • Oracle:收费,性能强悍,多用于大型企业项目。
  • MySQL:开源免费,中小企业最常用,电商、论坛项目首选,归属于Oracle。
  • PostgreSQL:开源免费,可自由修改分发。
  • SQL Server:微软出品,和Windows生态适配好。
  • SQLite:超轻量,占用资源极小,多用于手机APP、嵌入式设备。

💡关系型数据库核心:以行、列组成二维表格存储数据,多张表可以通过字段建立关联关系。比如学生表通过班级编号关联班级表。

非关系型数据库
  • Redis:键值对内存数据库,常用来做缓存,支持持久化。
  • MongoDB:文档型数据库,高性能,易扩展。

二、MySQL基础概念:服务器、数据库、表是什么关系

很多新手容易混淆这三个概念,这里一句话理清:

  1. MySQL数据库服务器:就是mysqld服务程序,一台机器上跑起来,可以管理N个数据库。
  2. 数据库(Database):一个应用对应一个数据库,比如电商项目就建一个电商数据库。
  3. 表(Table):数据库里面存放实体数据,一个库可以有多张表,比如用户表、订单表。

简单层级:计算机 → MySQL服务 → 多个数据库 → 每个数据库下多张数据表

MySQL配置文件 my.ini

Windows下MySQL8.0配置文件默认路径:C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

配置文件分为多个节点:

  • [client]:所有客户端通用配置,设置端口、字符集
  • [mysql]:仅mysql命令行客户端配置
  • [mysqld]服务端核心配置 ,端口3306、数据存放目录datadir、字符集character‑set‑server、默认存储引擎default‑storage‑engine=INNODB、各类日志配置。

✨修改配置文件注意:修改完配置,必须重启MySQL服务;如果修改数据目录,要把原data文件夹完整复制到新路径。

三、MySQL客户端工具,三种常用选择

MySQL是C/S架构:客户端发送请求 → MySQL服务端处理 → 返回结果。客户端有命令行也有可视化工具。

  1. mysql命令行(自带)
    终端直接连接:
bash 复制代码
mysql -uroot -p

输入密码就可以写SQL,适合熟悉命令行的开发者。

  1. MySQL Workbench

    Oracle官方免费可视化工具,图形化操作,分为数据库列表区、SQL编辑区、结果显示区。

  2. Navicat Lite

    学习强烈推荐,免费轻量。新建连接填写主机localhost、端口3306、账号root、密码,测试连接成功后,就可以编写SQL操作数据库。

📌小知识点:MySQL通信属于C/S架构,客户端需要安装软件;而我们平时浏览网页属于B/S浏览器服务器架构,浏览器就是客户端,不需要额外安装程序。

四、SQL语言三大分类

SQL全称结构化查询语言,专门操作关系数据库,分为DDL、DML、DCL。

分类 全称 作用 核心命令
DDL 数据定义语言 维护数据库、表结构 create创建、drop删除、alter修改
DML 数据操纵语言 操作表里真实数据 insert插入、delete删除、update修改、select查询
DCL 数据控制语言 权限、事务管理 grant授权、revoke回收权限、commit提交事务

日常开发写的最多的就是DML,也就是增删改查CRUD。

五、MySQL整体架构

MySQL是分层架构,从外到内分为四层:

  1. 连接层:连接池,处理客户端连接、身份认证、线程复用,限制最大连接数。
  2. 服务层:SQL接口、解析器(解析SQL语法)、优化器(生成最优执行计划)、缓存、服务管理组件。SQL在这里完成语法校验、逻辑优化。
  3. 存储引擎层可插拔架构,真正负责数据读写,不同引擎有不同特性。
  4. 文件系统层:磁盘上真实的文件,数据文件、索引文件、日志文件(错误日志、慢查询日志、binlog等)。

⚠️存储引擎是插件式,不是数据库,是表的属性,一张表选定一个存储引擎。

六、存储引擎怎么选?MyISAM vs InnoDB

执行show engines;就可以查看当前MySQL支持的全部存储引擎。MySQL8.0默认存储引擎是InnoDB

特性 MyISAM InnoDB(默认) MEMORY
事务支持 ❌不支持 ✅支持事务
锁粒度 表锁,整张表锁定 行锁,只锁被修改行 表锁
外键 不支持 支持 不支持
MVCC多版本并发 支持
存储位置 磁盘 磁盘 内存,重启数据丢失

使用场景建议

  1. InnoDB(绝大多数业务首选)

    支持事务、行级锁、外键、MVCC,数据安全,适合业务系统,电商、后台管理系统全部用它。

  2. MyISAM

    不支持事务,查询速度快,但是崩溃容易丢数据,现在新项目很少使用。

  3. MEMORY

    全部数据放在内存,速度极快,服务器重启数据全部清空,适合临时数据。

七、总结

  1. 数据库解决数据持久存储、并发访问、安全备份的问题,分为关系型和非关系型。
  2. MySQL是C/S架构,分清服务、数据库、表三级层级,my.ini是核心配置文件。
  3. 客户端可以使用命令行、Workbench、Navicat。
  4. SQL分为DDL结构定义、DML数据操作、DCL权限事务控制。
  5. MySQL四层架构:连接层‑服务层‑存储引擎层‑文件层;存储引擎可插拔,InnoDB是默认,业务开发优先选择InnoDB
相关推荐
Minxinbb1 小时前
TDSQL for MySQL修改统计信息参数
数据库·dba
小小工匠1 小时前
当 Agent 遇上逆向:拆解 reverse-skill 的技能路由架构
架构·逆向·reverse-skill
小Ti客栈1 小时前
MySQL查询原理:从Server到InnoDB
android·mysql·adb
whn19771 小时前
达梦连接串JDBC测试程序
java·数据库
让头发掉下来1 小时前
Flink SQL 中两个频繁变化 Topic 的 Join 行为分析
大数据·数据库·sql·flink
奈斯先生Vector2 小时前
2026 开发者效能革命:基于创源AIGC 与开源生态的工程化实践、安全沙箱与代码智能体协同
人工智能·算法·架构·prompt·aigc
Gu Gu Study2 小时前
【agent认知】宏观Agent的基本两层架构(Agent Loop与Agent Harness)
python·架构
小书房2 小时前
KMP跨平台之数据库
数据库·kmp
2401_894915532 小时前
GEO 定位优化源码搭建常见报错排查:数据库、伪静态、接口调试
java·数据库·网络协议·tcp/ip·spring·unity