Mysql

关注公众号 jb51net

关闭
首页 > 数据库 > Mysql > mysql数据库基础入门

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

作者:熠Eli

本文带大家梳理MySQL基础知识点,从数据库概念、主流产品、MySQL配置、SQL分类,再到底层架构和存储引擎,一次性搞懂基础核心,感兴趣的朋友跟随小编一起看看吧

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

前言

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

数据库基础

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

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

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

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

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

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

主流数据库分类

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

关系型数据库(二维表格模型)

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

非关系型数据库

二、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
配置文件分为多个节点:

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

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

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

  1. mysql命令行(自带)
    终端直接连接:
mysql -uroot -p

输入密码就可以写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多版本并发无支持无
存储位置磁盘磁盘内存,重启数据丢失

使用场景建议

七、总结

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

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

您可能感兴趣的文章:
阅读全文