news 2026/11/3 2:23:06

Mysql学习(1):揭秘数据库:十大核心优势与架构全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mysql学习(1):揭秘数据库:十大核心优势与架构全解析

🔥keyipatience:个人主页

🎬作者简介:C/C++后端开发学习者

🌟专栏传送门:《c++》《linux》《c++高阶数据结构》《c++数据结构与算法》《前端学习》

《Git》《Mysql》

⭐️patience is key in life

什么是数据库

数据库是20世纪60年代末发展起来的⼀项重要技术,已经成为计算机科学与技术的⼀个重要分支。数据库技术主要是用来解决数据处理的非数值计算问题,数据处理的主要内容是数据的存储、查询、修改、排序和统计等。

为什么要使用数据库

1.数据持久化把数据保存在磁盘,程序关掉、服务器重启,数据还在。

对比:内存变量程序一退出就消失。

2.数据结构化以表(行 + 列)的形式存放,有固定字段类型。不像 txt 文件,文本杂乱无章,方便查询管理。

3.数据完整性DBMS 约束保证数据合法。

DBMS 约束

约束是加在表上的规则,DBMS 自动帮你检查数据,不合规则的数据不让插入 / 修改,保证数据是合法、干净的。

常用约束种类

主键、非空、唯一、外键。

4.并发控制很多人同时读写同一份数据,数据库用锁、MVCC 保证不会出现数据错乱。

MVCC(只有 InnoDB 有):

同一条数据,保存多个版本快照,读的时候读旧快照,写的时候新建版本,实现「读写不阻塞」

例子:两个人同时买仅剩 1 件的商品,不会卖出两件。

5.安全性账号密码登录、细粒度权限。比如:某用户只能查询,不能修改;敏感数据可以加密。普通文件没有这套权限体系。

6.可扩展性数据量变大之后可以扩容:

  • 垂直扩展:换更强的服务器
  • 水平扩展:分库分表,多台机器分担压力

7.备份和恢复支持定时备份,如果误删数据,可以把备份恢复回来,减少损失。

8.查询优化内置查询优化器,自动选择索引、优化执行计划,复杂 SQL 也能高效查询,不用我们自己写代码遍历文件。

9.事务管理((ACID))事务:一组操作,要么全部成功,要么全部失败。

经典例子转账:A 扣钱,B 加钱。如果 A 扣完钱程序崩溃,必须回滚,A 的钱恢复。对应 ACID 特性。

10.多用户支持允许多个用户 / 程序同时连接访问数据库,网站很多用户同时操作就是靠这个。

主流数据库

关系型数据库

  • Oracle:甲骨文产品,适合大型项目,业内最强的数据库,没有之一,需要收费。
  • MySQL:开源免费,最受欢迎的数据库,在中小企业中普及率非常高,属于甲骨文,主要用在电商,论坛等。
  • PostgreSQL:加州大学伯克利分校计算机系开发的关系型数据库,可以免费使用,修改和分发。
  • SQL Sever:微软推出的一款专业级数据库,与旗下的操作系统,编程环境配合使用,适用于中大型项目。
  • SQLite:一款轻型的数据库,占用资源非常低,常用于嵌入式设备,手机 APP,桌面程序等场景。

非关系型数据库

  • Redis:流行的基于键值对的内存数据库,常用作缓存,支持数据持久化,支持多种数据结构。
  • MongoDB:基于 NoSQL 的文档型数据库,易扩展,高性能,高可用性,支持丰富的查询和聚合操作。

什么是关系型数据库?

关系型数据库,就是用一张张二维表格存数据,表和表之间能建立联系。表格就是咱们 Excel 那种,横向是行,纵向是列。

  1. 行(记录):一行代表一条完整信息,比如第一行1 张三 男 1,就是【张三这个学生】的全部信息。
  2. 列(字段):一列代表一类信息,比如姓名列、性别列。
  3. 表之间的关系学生表里有个班级编号,用这个数字去班级表找对应的班级名字。

张三的班级编号是 1 → 去班级表查到编号 1 是 java113 班。

数据库服务器,数据库与表之间的关系

  • mysql:客户端程序(用来发命令、连接数据库)
  • mysqld:服务端程序(真正干活、管理磁盘数据、监听 3306 端口的后台进程)
  • MySQL 整体是C/S(客户端 / 服务端)架构

层级关系(由大到小):

计算机 → MySQL 数据库服务器 → 多个数据库 (DB) → 每个数据库里有多张表

电脑上装 MySQL 服务;一个 MySQL 能包含很多数据库,一般一个项目建 1 个数据库。;又一个数据库里面可以创建很多张表,表才是保存数据的地方。

eg:

你电脑安装 MySQL(MySQL 服务)

  • 这一台 MySQL 里面建 2 个数据库:shop_db(商城项目)、forum_db(论坛项目)

一个项目对应 1 个数据库,两个项目的数据互相分开

打开商城数据库shop_db,里面新建好几张表:

  • user用户表(存所有买家账号)
  • goods商品表(存所有商品)
  • orders订单表(存下单记录

对比:

  • 数据库(database):是磁盘上按格式存的数据本身(一张张表)
  • 数据库服务:就是mysqld这个进程,负责管理、读写这些数据,对外提供访问

MySQL 架构

整体分为:连接层 → 服务层 → 存储引擎层 → 文件系统层

1.连接层 Connection Pool作用:接待外面的程序(Java/Python/ 命令行) 干的活:验证账号密码,管理连接,控制最多多少人同时连上数据库。

2.服务层(MySQL 核心大脑)收到 SQL 语句后在这里处理:

  • 接收 SQL 语句
  • 解析器:检查你的 SQL 语法有没有写错
  • 优化器:选一条最快的执行方案
  • 还有权限、备份、复制这些管理功能

这一层不碰磁盘上真实数据,只负责分析 SQL 要干什么。

3.存储引擎层(可插拔)真正干活读写数据的模块。不同引擎有不同能力,建表时可以自己选。InnoDB 是默认用的引擎。

可插拔:想选哪一个引擎就插哪一个(show engines展示所有引擎)。

服务层下达指令,存储引擎去拿 / 改数据。

4.文件系统层硬盘上真实的文件:数据表、索引、日志、MySQL 配置文件,永久保存在电脑磁盘。

总结:

  1. 连接层:接待客户端,验证登录
  2. 服务层:解析、优化 SQL,权限管理
  3. 存储引擎层:真正读写数据(InnoDB 最重要,可插拔)
  4. 文件层:磁盘上保存数据、日志文件

SQL分类

1.DDL 数据定义语言管库、表的结构(建表、删表、改表) 命令:create创建,drop删除,alter修改

好比:建一个 Excel 表格、删掉表格、修改表格列

2.DML 数据操纵语言管表格里面的内容(增、删、改里面的行数据) 命令:insert添加数据,delete删除数据,update修改数据

  • DQL(属于 DML 里单独拿出来的)数据查询语言命令:select,专门用来查数据

3.DCL 数据控制语言管权限和事务命令:grant给权限,revoke收回权限,commit提交事务

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 2:22:41

01 检索下载文献并生成 MD

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/3 2:18:06

收集容器日志脚本

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/11/3 2:16:00

Java——初始Java

一、Java语言特性 以下Java语言特性来自于Java白皮书: 1. 简单性 Java语法是C语法的一个“纯净版本”,相当于对C做了一个减法。这里没有头文件、指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等等。不仅如此&#xff0…

作者头像 李华
网站建设 2026/11/3 2:15:53

rdpwrap.ini 三步替换指南:让 RDP Wrapper 恢复多用户远程桌面

rdpwrap.ini 三步替换指南:让 RDP Wrapper 恢复多用户远程桌面 【免费下载链接】rdpwrap.ini RDPWrap.ini for RDP Wrapper Library by StasM 项目地址: https://gitcode.com/GitHub_Trending/rd/rdpwrap.ini rdpwrap.ini 是 RDP Wrapper Library&#xff08…

作者头像 李华