【MySQL】数据库基础 - 详解

news/2025/10/31 16:58:13/文章来源:https://www.cnblogs.com/yangykaifa/p/19180538

数据库初识

  • 数据库初识
  • github地址
  • 0. 前言
  • 1. MySQL的登录
  • 2. 什么是数据库
  • 3. 为什么要用数据库存储数据
      • 为什么要有数据库?
      • 为什么用数据库存储数据
  • 4. Linux中MySQL数据库的使用样例
  • 5. 常见主流数据库
  • 6. 服务器,数据库,表关系
  • 7. MySQL整体架构
    • 1. 最上层:客户端连接层(Client Connectors)
    • 2. MySQL Server 层(核心层)
      • (1)Connection Pool(连接池)
      • (2)SQL Interface(SQL 接口)
      • (3)Parser(解析器)
      • (4)Optimizer(优化器)
      • (5)Caches(缓存)
      • (6)Services & Utilities(服务与工具)
    • 3. 存储引擎层(Pluggable Storage Engines)
    • 4. 最底层:文件系统与日志层
    • 总结一句话
  • 8. SQL语句分类和存储引擎
    • SQL分类
    • 存储引擎
  • 9. 结语

数据库初识

github地址

有梦想的电信狗

0. 前言

数据库是现代应用的核心,它为数据的安全存储、高效查询和便捷管理提供了解决方案。本文以 MySQL 为例,从基础概念到实际操作,带你快速入门并理解数据库的整体架构与常见用法。


1. MySQL的登录

命令mysql -h 127.0.0.1 -P 3306 -u_root-p

命令中选项的解释

密码输入后,不会回显


2. 什么是数据库

  • mysqlmysqld

在这里插入图片描述

  • mysql:是数据库服务的客户端
  • mysqld:是数据库服务的服务器端。可执行程序带上d,表示这是一个守护进程
  • mysql本质:是基于C(mysql)S(mysqld)模式的一种网络服务
    • Cilent
    • Server

mysql是一套提供数据存取的服务网络程序

  • 口语中说的数据库,一般指的是,在磁盘或者内存中存储的特定结构组织的数据,也就是将来在磁盘上存储的一套数据库方案

  • 数据库服务,可以特指mysqld

3. 为什么要用数据库存储数据

为什么要有数据库?

  • 提升数据安全性文件方式存储容易丢失或损坏,安全性差,缺少完整的访问控制和权限管理。数据库提供访问控制、备份与恢复机制,更安全可靠。
  • 便于数据查询和管理:文件只能顺序读取或简单查找,而数据库支持高效的查询语言(SQL)、索引、事务管理,极大提高数据管理能力。
  • 支持海量数据存储:文件在面对海量数据时效率低下,不易扩展。数据库可以高效组织、分片和扩展,满足大规模应用需求。数据库能够同时支持磁盘存储和内存优化,实现大数据量下的高效操作。
  • 方便程序操作:使用文件存放存储,程序员需要自己维护文件的读写、索引、并发控制,开发复杂。数据库提供统一的接口和 API,用户只需提出“存储字段”和“查询需求”,数据库就能高效返回结果,减少开发者对底层存储的直接管理,使应用更易维护和扩展。

为什么用数据库存储数据


总结一句话:数据库是为了解决文件存储在安全性、管理性、查询效率、扩展性和程序操作上的不足,使数据能够更安全、更高效、更可控地存储与使用。

4. Linux中MySQL数据库的使用样例

  • Ubuntu 22.04mysql服务中配置文件存放的路径:/etc/mysql/mysql.conf.d/mysqld.cnf
  • 打开Ubuntu 22.04 中MySQL的配置文件:vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
datadir         = /var/lib/mysql      # mysql服务中数据存放的路径
log-error       = /var/log/mysql/error.log
character-set-server = utf8
default-storage-engine = innodb
bind-address = 0.0.0.0
  • 查看已有的数据库
show databases;

数据库中数据在磁盘中存储的位置:

datadir         = /var/lib/mysql      # mysql服务中数据存放的路径
  • 在数据库中建表
create database helloWorld;      # 建立名为 helloWorld 的表

建立数据库的本质是在磁盘中建立了一个文件夹:

在这里插入图片描述

  • 创建数据库表
create table student(
id int,
name varchar(32),
gender varchar(2)
);
  • 表中插入数据
insert into student (id, name, gender) values (1, '张三', '男');
insert into student (id, name, gender) values (2, '李四', '女');
insert into student (id, name, gender) values (3, '王五', '男');
  • 查询表中的数据
select * from student;

在这里插入图片描述

总结结论

  • 建立一个数据库,本质是在Linux下建立一个目录
  • 在数据库内建立表,本质就是在Linux下创建对应的文件
  • **数据库本质其实也是文件!!**只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作

以上工作是谁做的?是mysqld服务帮我们做的

5. 常见主流数据库

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
  • Oracle: 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论坛。对简单的SQL处理效果好。
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发。
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中

6. 服务器,数据库,表关系

在这里插入图片描述
在这里插入图片描述

7. MySQL整体架构

  • MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性

在这里插入图片描述

这张图大致把 MySQL 分为 四层结构


1. 最上层:客户端连接层(Client Connectors)


2. MySQL Server 层(核心层)

这是 MySQL 的“大脑”,处理请求、解析 SQL、优化执行。它又分为几个模块:

(1)Connection Pool(连接池)

(2)SQL Interface(SQL 接口)

  • 提供执行 SQL 的入口,支持 DML(增删改查)、DDL(建表/改表)、存储过程、视图、触发器等。

(3)Parser(解析器)

(4)Optimizer(优化器)

  • 选择最优的 SQL 执行方案。
  • 例如:决定走哪个索引、选择连接顺序、是否使用全表扫描等。
  • 优化器的好坏直接影响查询效率。

(5)Caches(缓存)

(6)Services & Utilities(服务与工具)

  • 提供数据库的周边功能:
    • 备份与恢复
    • 安全机制
    • 主从复制、集群
    • 分区表
    • 可视化工具(Workbench)

3. 存储引擎层(Pluggable Storage Engines)

  • MySQL 的 核心特点之一:存储引擎可插拔
  • 常见存储引擎:
    • InnoDB(默认,支持事务、外键,行级锁)
    • MyISAM(轻量级,读多写少场景)
    • Memory(数据存放在内存,速度快,但不持久化)
    • Archive(适合归档存储,压缩高效)
    • Federated(访问远程 MySQL 数据库)
    • Merge、Cluster、Example 等

不同存储引擎可以共享 MySQL 上层的 SQL 接口,但负责数据的实际存储与读取。


4. 最底层:文件系统与日志层

  • File System(文件系统)
    • 数据最终存放到操作系统文件系统(如 NTFS、ext4、SAN、NAS)。
  • Logs and Files(日志与文件)
    • MySQL 运行时生成各种日志:
      • Binary log(二进制日志,用于复制与恢复)
      • Error log(错误日志)
      • Slow log(慢查询日志)
      • General log(通用日志,记录所有语句)
      • Redo log(InnoDB 用于崩溃恢复)
      • Undo log(事务回滚用)
      • Data files、Index files(实际数据和索引文件)

总结一句话

MySQL 的整体架构是 “连接层 → SQL 执行层 → 存储引擎层 → 文件系统层”

  • 上层(Server 层)处理 SQL 解析、优化、缓存、安全。
  • 中间(存储引擎层)负责数据的存取方式(可插拔)。
  • 底层(文件系统)最终把数据写入磁盘,并通过日志保证事务一致性与高可用性。

8. SQL语句分类和存储引擎

SQL分类

  • DDL【data definition language】数据定义语言,用来维护存储数据的结构
    代表指令create, drop, alter
  • DML【data manipulation language】数据操纵语言,用来对数据进行操作
    代表指令insert,delete,update
    • DML中又单独分了一个DQL数据查询语言代表指令select
  • DCL【Data Control Language】数据控制语言,主要负责权限管理和事务
    代表指令grant,revoke,commit

存储引擎

MySQL的核心就是插件式存储引擎,支持多种存储引擎

查看存储引擎:

show engines;

在这里插入图片描述

MySQL 存储引擎对比

FeatureMyISAMBDBMemoryInnoDBArchiveNDB
Storage LimitsNoNoYes64TBNoYes
Transactions (commit, rollback, etc.)
Locking granularityTablePageTableRowRowRow
MVCC/Snapshot Read
Geospatial support
B-Tree indexes
Hash indexes
Full text search index
Clustered index
Data Caches
Index Caches
Compressed data
Encrypted data (via function)
Storage cost (space used)LowLowN/AHighVery LowLow
Memory costLowLowMediumHighLowHigh
Bulk Insert SpeedHighHighHighLowVery HighHigh
Cluster database support
Replication support
Foreign key support
Backup/Point-in-time recovery
Query cache support
Update Statistics for Data Dictionary

总结要点:

  • InnoDB:MySQL 默认引擎,支持事务、行级锁、外键,适合大多数应用。
  • MyISAM:读写性能高,支持全文索引,但不支持事务,表级锁。
  • Memory:数据存储在内存中,速度快,但断电数据丢失。
  • Archive:高压缩率,适合日志、归档数据存储。
  • NDB (Cluster):支持分布式集群,适合高可用、高并发场景。
  • BDB:较旧的事务引擎,现在已基本弃用。

9. 结语

​ 通过本文的学习,我们了解了数据库的作用、MySQL 的基本使用方式及其架构特点。数据库不仅是数据存放的工具,更是应用高效运行的关键


以上就是本文的所有内容了,如果觉得文章对你有帮助,欢迎 点赞⭐收藏 支持!如有疑问或建议,请在评论区留言交流,我们一起进步

分享到此结束啦
一键三连,好运连连!

你的每一次互动,都是对作者最大的鼓励!


征程尚未结束,让我们在广阔的世界里继续前行!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/951996.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云湖+小马算力:无需懂技术,轻松知识库AI智能机器人

注册小马算力:https://www.tokenpony.cn/3N6Rdu3e 注册完毕进入后台开通API keys在云湖APP中,创建机器人点击【机器人设置】开启大模型机器人选项,模型类型选择其他模型可以访问:https://www.tokenpony.cn/#/model…

2025年深圳geo优化服务公司权威推荐榜单:geo优化公司/geo优化推广/ai排名优化源头公司精选

在当前AI技术快速发展的背景下,生成式引擎优化(GEO)已成为企业获取AI搜索流量的核心手段。据行业数据显示,2025年全球AI搜索用户规模已突破8亿,超过60%的搜索请求会触发AI摘要回答,未能被AI采纳内容的品牌将面临…

2025年架空电缆源头厂家权威推荐榜单:屏蔽电缆/防火电缆/矿物质电缆源头厂家精选

随着全球电力网络升级与新能源并网需求激增,2025年架空电缆市场正迎来技术升级与产能扩张的双重浪潮。高质量架空电缆已成为保障电网安全、提升输电效率的核心要素。 架空电缆作为电力传输的"空中动脉",其…

hello-gui

hello-guiimport("stdfaust.lib"); ctFreq = hslider("[0]cutoffFrequency",500,50,10000,0.01) hslider 的第一个参数是参数的名称,因为它将在界面中显示或在API中使用(它可以不同于与UI元素关…

异常的处理

新版本的C#支持nullable功能,如果一个可空的对象,没有进行空值判断的话,IDE会有报警提示。 借助下面的一些特性标识,能够进行null值的判断。 对函数内引用的属性进行异常判断 通过ArgumentNullException.ThrowIfNu…

银河麒麟服务器操作系统 V10 (Lance) 安装docker 28

银河麒麟服务器操作系统 V10 (Lance) 安装docker 28银河麒麟服务器操作系统 V10 (Lance) 安装docker 28 编辑 复制银河麒麟服务器操作系统 V10 Docker安装 在银河麒麟服务器操作系统 V10 (Lance) 上安装 Docker 28.0.1…

Python创建类(下)_ 当上帝的时刻到了

Python创建类(下)_ 当上帝的时刻到了class Student: def __init__(self, name, student_id): self.name = name self.student_id = student_id self.grades = {"语文": 0, "…

超纯水售后哪家好?国产仪器权威推荐品牌top2

在科学研究和工业生产中,超纯水作为关键的基础资源,其质量和供应稳定性至关重要。选择一家售后服务优质的超纯水设备供应商,不仅能确保设备的长期稳定运行,还能为科研和生产提供有力保障。本文将基于国产仪器领域的…

PADS丨极坐标设置

在需要布局的位置设置原点。使用无模命令“GP”打开极坐标栅格。打开 设置 -> 栅格 -> 径向移动设置 -> 设置半径和环的数量。选中元器件 -> 右键选择“径向移动”,即可按极坐标布局。元器件换方向 ->…

题解:P11630 [WC2025] 士兵

更差的阅读体验考虑一个很菜的 dp。假设 \(f_{i, j}\) 表示前 \(i\) 个人,对着 \(i\) 砍了 \(j\) 刀的方案数。那么很显然有转移: \[f_{i, j} = \max_{k} \{f_{i-1, k} - m \times \max(0, j-k)\} + [j \ge a_i] \ti…

2025 年 SMT 加工优质厂家最新推荐榜,技术实力与市场口碑深度解析的权威甄选结果

引言 2025 年 SMT 加工行业竞争愈发激烈,为助力企业精准选择合作厂家,电子制造协会联合国内权威测评机构开展专项测评。本次测评历时 3 个月,覆盖珠三角、长三角等核心电子制造产业带超 200 家 SMT 加工企业,采用 …

Oracle 19c数据库迁移到IvorySQL 4.6实战

1. 背景 在国家数字化转型与信创产业加速推进的背景下,数据库作为信息系统的核心基础设施,其国产化替代已成为企业数字化建设的重要战略方向。Oracle 数据库凭借成熟的技术体系长期占据市场主导地位,但在自主可控、…

2025 年 10 月北京清洗公司最新推荐,聚焦资质、案例、售后的五家机构深度解读

引言 2025 年 10 月,北京清洗行业迎来新一轮服务能力评估,本次评估由北京环境卫生协会联合行业技术专家团队开展,采用 “资质审核 + 技术测试 + 客户回访 + 售后追踪” 四维测评方法。测评覆盖全市 58 家主流清洗企…

2025年仪器计量制造企业权威推荐榜单:计量检测服务/仪器类检测/计量检测源头厂家精选

在工业4.0和智能制造浪潮的推动下,2025年中国仪器计量市场规模已突破千亿元,年均增速保持在12% 以上。精密测量与计量校准作为工业质量的基础保障,正成为支撑制造业升级的关键环节。 为帮助各类企业精准筛选合格供应…

紫外分光光度计哪家好?TOP1品牌权威推荐,选购建议看这里!

在当今的科学研究和工业生产中,紫外分光光度计作为一种重要的分析仪器,广泛应用于教学研究、卫生防疫、环境监测、农林牧渔业、制造业、计量校准、行政机关、市政、科研机构、勘察水利等领域。选择一款性能卓越、质量…

2025年网络隔离变压器优质厂家权威推荐榜单:以太网变压器/数据泵/网络变压器源头厂家精选

在数字化转型加速的2025年,网络隔离变压器作为保障数据稳定传输的关键组件,其性能优劣直接关系到整个通信系统的可靠性。 据行业报告预测,到2031年,全球以太网磁性变压器市场销售额预计将达到71.4亿元,年复合增长…

2025 年提升门厂家最新推荐榜,技术实力与市场口碑深度解析,筛选优质品牌助力采购决策

引言 为精准筛选出 2025 年提升门领域优质品牌,门业协会联合工业设施运维联盟开展专项测评,本次测评覆盖全国 127 家提升门生产企业,从技术研发、生产能力、市场反馈、服务体系四大维度设置 28 项细分指标。测评中,…

2025 年杭州画室推荐:之江画室以央清班十年口碑、突出设计学录取案例与优质教学空间立足行业

行业背景 近年来,杭州凭借浓厚的艺术氛围与优质的美术教育资源,成为全国美术生备考的重要目的地,画室行业呈现出专业化、精细化发展趋势。随着艺术类院校对考生综合素养与专业能力要求的提升,考生及家长在选择画室…

框架工具

框架工具CICD 服务:GitLab Jenkins Harobr KubeSphere ArgoCD Nexus中间件服务XXL-JOB-AdminRocketMQRedisNacosMySQLMongoDBMongo Expressminio-publicKibanaElasticSearch监控服务:PrometheusGrafanaAlertmanger …

nvm pnpm conda python 多版本管理器

nvm pnpm conda python 多版本管理器nvm pnpm conda python 多版本管理器 pnpm python 多版本管理器