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

 更新时间:2026年08月30日 10:16:15   作者:熠Eli  
本文带大家梳理MySQL基础知识点,从数据库概念、主流产品、MySQL配置、SQL分类,再到底层架构和存储引擎,一次性搞懂基础核心,感兴趣的朋友跟随小编一起看看吧

想系统入门 MySQL,‌核心思路是:先搞懂“数据库是什么”和 SQL 分类,再理解 MySQL 的分层架构,最后抓住存储引擎(尤其是 InnoDB)的特点‌。下面按这个顺序帮你梳理一遍。‌‌

前言

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

数据库基础

MySQL 是一个‌关系型数据库管理系统‌,核心作用是把应用产生的数据持久化存储下来,并提供高效的增删改查(CRUD)能力。 它按二维表的结构组织数据(类似 Excel),由多张相互关联的表组成,通过 SQL 语句来操作。‌‌

SQL 主要分为三类,日常开发中写的最多的是 DML:‌‌

  • DDL(数据定义语言)‌:维护库和表的结构,比如 create(创建)、drop(删除)、alter(修改)。
  • DML(数据操纵语言)‌:操作表里的真实数据,比如 insert(插入)、delete(删除)、update(修改)、select(查询)。
  • DCL(数据控制语言)‌:管理权限和事务,比如 grant(授权)、revoke(回收权限)、commit(提交事务)。‌‌

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

数据库诞生于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命令行(自带)
    终端直接连接:
mysql -uroot -p

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

  • MySQL Workbench
    • Oracle官方免费可视化工具,图形化操作,分为数据库列表区、SQL编辑区、结果显示区。
  • 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

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

使用场景建议

  • InnoDB(绝大多数业务首选)
    • 支持事务、行级锁、外键、MVCC,数据安全,适合业务系统,电商、后台管理系统全部用它。
  • MyISAM
    • 不支持事务,查询速度快,但是崩溃容易丢数据,现在新项目很少使用。
  • MEMORY
    • 全部数据放在内存,速度极快,服务器重启数据全部清空,适合临时数据。

七、总结

  1. 数据库解决数据持久存储、并发访问、安全备份的问题,分为关系型和非关系型。
  2. MySQL是C/S架构,分清服务、数据库、表三级层级,my.ini是核心配置文件。
  3. 客户端可以使用命令行、Workbench、Navicat。
  4. SQL分为DDL结构定义、DML数据操作、DCL权限事务控制。
  5. MySQL四层架构:连接层‑服务层‑存储引擎层‑文件层;存储引擎可插拔,InnoDB是默认,业务开发优先选择InnoDB

到此这篇关于MySQL从零搞懂数据库基础、架构与存储引擎的文章就介绍到这了,更多相关mysql数据库基础入门内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL事务处理与应用简析

    MySQL事务处理与应用简析

    事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理。这篇文章主要介绍了MySQL事务处理,需要的朋友可以参考下
    2014-06-06
  • MySQL5.1忘记root密码的解决办法(亲测)

    MySQL5.1忘记root密码的解决办法(亲测)

    这篇文章主要介绍了MySQL5.1忘记root密码的解决办法(亲测)的相关资料,需要的朋友可以参考下
    2016-01-01
  • my.cnf(my.ini)重要参数优化配置说明

    my.cnf(my.ini)重要参数优化配置说明

    本文针对mysql不同存储引擎,MyISAM与Innodb进行了讲解如何进行my.cnf(my.ini)的参数优化
    2018-03-03
  • MySQL如何选择合适的索引

    MySQL如何选择合适的索引

    这篇文章主要介绍了MySQL如何选择合适的索引,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • windows下mysql 8.0.13 解压版安装图文教程

    windows下mysql 8.0.13 解压版安装图文教程

    这篇文章主要为大家详细介绍了windows下mysql 8.0.13 解压版安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • MySQL 十大常用字符串函数详解

    MySQL 十大常用字符串函数详解

    数据库函数是一种具有某种功能的模块,可以接收零个或多个输入值,并且返回一个输出值,这篇文章给大家介绍MySQL 十大常用字符串函数,感兴趣的朋友跟随小编一起看看吧
    2021-06-06
  • MySQL存储结构用法案例分析

    MySQL存储结构用法案例分析

    这篇文章主要介绍了MySQL存储结构用法,结合具体案例形式分析了mysql存储结构相关使用方法与操作注意事项,需要的朋友可以参考下
    2018-07-07
  • MySQL基于DOS命令行登录操作实例(图文说明)

    MySQL基于DOS命令行登录操作实例(图文说明)

    这篇文章主要介绍了MySQL基于DOS命令行登录操作,以图文形式结合实例说明了MySQL登录命令的基本用法,非常简单易懂需要的朋友可以参考下
    2016-01-01
  • 解决MySQL存储时间出现不一致的问题

    解决MySQL存储时间出现不一致的问题

    这篇文章主要介绍了解决MySQL存储时间出现不一致的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 浅谈mysql密码遗忘和登陆报错的问题

    浅谈mysql密码遗忘和登陆报错的问题

    下面小编就为大家带来一篇浅谈mysql密码遗忘和登陆报错的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论