当前位置: 首页 > news >正文

数据库基础与MySQL核心组件解析 - 指南

数据库基础与MySQL核心组件解析 - 指南

在这里插入图片描述

在这里插入图片描述

—数据库专栏—


一、数据库基础:为什么大家需要它?

在这里插入图片描述

1.1 什么是数据库?

数据库Database是诞生于20世纪60年代末的一项重要技术。它已成为计算机科学与技术的一个重要分支,主要用于解决数据处理中的非数值计算问题。数据处理的核心内容包括数据的存储、查询、修改、排序和统计等。

1.2 使用数据库的九大作用

在现代应用程序开发中,使用数据库是不可或缺的,它提供了传统文件系统难以比拟的优势:

  1. 数据持久化(Data Persistence):数据库可以将数据保存在存储介质中,即使应用程序关闭或服务器重启,数据也不会丢失。
  2. 数据结构化(Data Structuring):数据库能够以结构化的方式存储素材,使得材料易于管理和查询。
  3. 数据完整性(Data Integrity):数据库管理系统(DBMS)提供了数据完整性的保障,确保数据的准确性和一致性。
  4. 并发控制(Concurrency Control):数据库允许处理多个用户或进程同时访问和修改数据,同时确保内容的一致性。
  5. 安全性(Security):数据库提供了多种安全机制,如访问控制、加密等,保护数据不被未授权访问。
  6. 可扩展性(Scalability):随着数据量的增长,数据库许可水平或垂直扩展,以适应不断增长的数据需求。
  7. 备份和恢复(Backup and Recovery):数据库支持数据的备份和恢复,以防数据丢失或损坏。
  8. 查询优化(Query Optimization):数据库系统提供了高效的查询优化器,允许迅速执行复杂的查询操作。
  9. 事务管理(Transaction Management):大部分关系型数据库都支持事务(Transaction),确保一系列处理要么完全成功,要么完全失败,提高了操作的可靠性。
  10. 多用户支持(Multi-user Support):数据库允许多个用户同时访问和操作材料,适合多用户环境。

二、关系型数据库与主流产品

2.1 关系型数据库(Relational Database)定义

指采用了就是关系型数据库关系模型来组织素材的数据库。关系模型行简单理解为二维表格模型。一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。

核心概念:在关系型数据库中,表中的每一条记录称为一行数据(Row),每一个数据行由一个或多个(Column)组成。

例如,在“学生表”和“班级表”中,可以依据“班级编号”该公共字段来建立两者之间的关系,从而完成数据的有效组织和查询。
在这里插入图片描述

2.1 非关系型数据库

2.2 主流关系型与非关系型数据库

类型数据库特点适用场景
关系型Oracle甲骨文产品,适合大型项目,业内最强的数据库,需要收费。大型企业级项目
MySQL开源免费,最受欢迎的数据库,在中小企业中普及率非常高。电商、论坛、中小型项目
PostgreSQL加州大学伯克利分校计算机系开发,可以免费使用、修改和分发。开源项目、复杂查询
SQL Server微软推出的一款专业级数据库,适用于中大型项目。中大型项目,微软生态
SQLite一款轻型的数据库,占用资源非常低。嵌入式设备、手机APP、桌面程序
非关系型Redis流行的基于键值对的内存数据库,常用作缓存,支持多种数据结构。缓存、会话存储
MongoDB基于NoSQL的文档型数据库,易扩展、高性能、高可用性。内容管理、大数据应用

三、MySQL安装与核心配置

3.1 MySQL 服务端程序 mysqld

MySQL安装完成后,其核心的服务端程序是 mysqld(Linux)或 mysqld.exe (Windows)。该可执行程序运行后,MySQL服务即启动。当把MySQL服务配置为自启动时,操作系统启动时会自动运行 mysqld 可执行程序,从而启动MySQL服务。

3.2 数据库服务器、数据库与表的关系

数据库服务器是指在机器上安装了一个数据库管理系统程序,该管理程序许可管理多个数据库(Database),一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的内容,一般会在数据库中创建多个表(Table),以保存脚本中实体的数据。

计算机→安装MySQL数据库服务器→管理多个数据库(DB1, DB2...)→包含多个表(表1, 表2...)\text{计算机} \xrightarrow{\text{安装}} \text{MySQL数据库服务器} \xrightarrow{\text{管理}} \text{多个数据库}(\text{DB1, DB2...}) \xrightarrow{\text{含有}} \text{多个表}(\text{表1, 表2...})计算机安装MySQL数据库服务器管理多个数据库(DB1, DB2...)包含多个表(1, 2...)
在这里插入图片描述

3.3 选项(配置)文件详解

MySQL的默认配置(如端口号、数据目录、存储引擎、字符编码集等)允许依据编辑选项文件(Configuration File)实现修改。

在Windows系统中,选项文件的默认路径通常是 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

以下是选项记录中的关键配置节点和参数:

# CLIENT SECTION # 所有随MySQL安装的客户端程序统一配置节点
[client]
default-character-set=utf8mb4 # 所有客户端使用utf8mb4编码
port=3306 # 客户端连接端口号
# SERVER SECTION # MySQL服务器端配置节点
[mysqld] # 针对MySQL服务端程序mysqld配置
port=3306 # MySQL服务的端口号
# basedir="D:/Program Files/MySQL/MySQL Server 8.0/" # 安装目录路径
datadir=D:/database/MySQL/data8.0 # 数据目录的实际路径,如果要修改,此处填写数据目录的实际路径
character-set-server=utf8mb4 # 服务端使用的编码集
collation-server = utf8mb4_0900_ai_ci # 服务端使用的排序规则
default-storage-engine=INNODB # 服务端使用的存储引擎
general-log=1 # 是否开启通用日志(1开启)
log-error="D:/log/MySQL/8.0/error_log.err" # 错误日志的输出路径
log-bin="D:/log/MySQL/8.0/bin_log" # binlog的文件名前缀,用于备份和复制

注意: 修改配置文件之后,如果重新指定数据目录路径,需要把C:\ProgramData\MySQL\MySQL Server 8.0\Data 目录整体复制到目标位置,并且需要重新启动MySQL服务才能生效。


四、MySQL客户端工具

通过MySQL安装成功后自带的命令行客户端工具,能够输⼊命令和执行SQL语句,mysql的基本运用非常简单,打开终端并输入以下命令:
在这里插入图片描述
在这里插入图片描述
也能够使用MySOL官方提供的可视化客户端工具Workbench,运行后如下所示
在这里插入图片描述

五、客户端与服务器的通讯方式

客户端与MySQL数据库服务器的通讯属于典型的C/S架构(Client/Server Architecture)。

5.1 C/S架构(客户端/服务器)

在这里插入图片描述

C/S架构全称是客户端/服务器(Client/Server)架构模式,是常用的两层架构。客户端需要安装客户端软件,服务端程序运行在服务器上,提供 Socket 或数据库服务。

  • 优点:大部分业务都可以在客户端完成,充分利用本地的计算机资源;响应速度快;个性化定制能力强;面向相对固定的用户群,对信息安全的控制能力强。
  • 缺点:需要安装客户端才能使用;维护成本高,任何一台电脑上的客户端出现困难都需要进行维护,升级过程繁琐。
  • 示例应用:QQ、CCTALK,各种网络游戏等应该安装程序并与服务器进行网络通信的应用。

5.2 B/S架构(浏览器/服务器)

在这里插入图片描述

通过B/S架构全称是浏览器/服务器(Browser/Server)结构,分为Web浏览器、服务器程序、数据库服务三部分,行理解为是对C/S架构一种改进。由于所有的业务逻辑都由服务器程序处理,故而客户端仅使用浏览器就能够完成所有操作,大大降低了客户端的维护成本。


六、SQL语言与分类

6.1 什么是 SQL?

SQL一种数据库查询和程序设计语言。它用于存取数据以及查询、更新和管理关系数据库。就是(Structured Query Language),即结构化查询语言的简称,

6.2 SQL 三大分类

SQL 指令允许划分为以下三大类:

  1. DDL (Data Definition Language) - 数据定义语言

    • 作用:用来维护存储信息的结构(Schema)。
    • 代表指令CREATE(创建)、DROP(删除)、ALTER(修改)。
  2. DML (Data Manipulation Language) - 数据操纵语言

    • 作用:用来对资料本身进行运行。
    • 代表指令INSERT(插入)、DELETE(删除)、UPDATE(更新)、SELECT(查询)。
  3. DCL (Data Control Language) - 数据控制语言

    • 作用:首要负责权限管理和事务控制。
    • 代表指令GRANT(授权)、REVOKE(撤销权限)、COMMIT(提交事务)。

七·、MySQL 8.0 架构与存储引擎深度对比

7.1 MySQL 8.0 服务器架构

MySQL 8.0 服务器是由连接池、服务管理工具和公共组件、NoSQL接口、SQL接口、解析器、优化器、缓存、存储引擎、文件系统组成。MySQL还为各种编程语言提供了一套用于外部应用访问服务器的连接器。

其整体架构可以分为以下几个层次:
在这里插入图片描述

  1. 连接层(Connection Pool):负责外部程序(通过 MySQL Connectors)的连接管理、身份验证、线程复用、连接限制和缓存等。
  2. 服务层(Service Layer)
    • SQL Interface / NoSQL Interface:处理 DML、DDL、存储过程、视图、触发器等操作。
    • Parser(解析器):进行查询翻译、对象权限管理。
    • Optimizer(优化器):进行查询访问路径选择、统计信息分析。
    • Caches & Buffers:包括全局和存储引擎缓存,用于提高性能。
  3. 存储引擎层(Pluggable Storage Engines):这是 MySQL 的独特之处。不同的存储引擎对资料如何存储、索引、更新和查询的完成方式各不相同,支持可插拔。
  4. 文件系统层(File System):负责持久化存储,包括系统文件(程序、配置)和文件/日志(Data, Index, Redo, Undo, Binary, Error, General Quer, Slow Query, DDL…)。
外部程序: MySQL Connectors, Shell
连接层: Connection Pool
服务层: SQL/NoSQL Interface, Parser, Optimizer, Caches
存储引擎层: InnoDB, MyISAM, MEMORY...
文件系统层: Data, Index, Log Files

7.2 核心存储引擎特性对比

存储引擎是MySQL数据库处理材料的核心组件,默认的存储引擎是INNODB。可以使用 SHOW ENGINES 语句查看当前服务器支持的存储引擎。
在这里插入图片描述

Feature (特性)MyISAMMemoryInnoDB
事务支持(Transactions)NoNoYes
外键支持(Foreign key support)NoNoYes
锁粒度(Locking granularity)Table (表级锁)Table (表级锁)Row (行级锁)
集群索引(Clustered indexes)NoNoYes
数据缓存(Data caches)NoN/AYes
存储限制(Storage limits)256TBRAM (内存)64TB
B-tree 索引YesYesYes
MVCCNoNoYes

关键结论:

  • InnoDB:默认存储引擎。它支持事务行级锁外键、和MVCC(多版本并发控制),提供了最高的可靠性和并发性能,适用于绝大多数对数据完整性和高并发读写要求高的应用场景。
  • MyISAM:不帮助事务和行级锁(只支持表级锁),但具有较快的读取速度。适用于读多写少、对数据完整性要求不高的场景。
  • MEMORY:数据存储在内存中(RAM),速度极快,但不承受事务,且在服务重启时数据会丢失。适用于临时表或作为缓存运用。

八、总结与展望

本文从数据库的必要性出发,介绍了关系型数据库的核心概念,并以MySQL为例,详细阐述了其安装配备、C/S通讯架构,以及影响性能和数据可靠性的核心组件——存储引擎。

核心知识点回顾:

希望通过对MySQL架构的理解,读者能够在实际应用开发中,根据业务场景(如高并发、数据一致性、快速查询)选择最合适的存储引擎和数据库设计方案。

思考与讨论:在您的项目中,是否遇到过因为存储引擎选择不当而导致的性能问题?在什么场景下,您会考虑使用 MyISAM 或 MEMORY 替代默认的 InnoDB 引擎?欢迎在评论区分享您的经验和见解!


在这里插入图片描述

http://www.jsqmd.com/news/349581/

相关文章:

  • 展厅迎宾机器人导航与讲解技术深度解析及主流产品推荐 - 智造出海
  • CH5xx 扩展广播
  • 基于实时互动问答技术的展厅迎宾机器人深度解析与主流产品推荐 - 智造出海
  • 金融交易系统TinyMCE如何解决股票K线图粘贴后无法交互?
  • 2026年口碑好的消防风机/轴流消防风机厂家推荐及选择参考 - 行业平台推荐
  • 从Java全栈到前端框架:一次真实的面试经历
  • 深聊案例多样的短视频矩阵培训服务,口碑好的公司有哪些 - 工业推荐榜
  • 2026深圳靠谱的自助洗车加盟老牌项目推荐及价格情况 - myqiye
  • 金融保险行业如何实现大文件上传下载的安全方案总结?
  • fsdafasdf
  • 航空航天领域如何实现大文件秒传的解决方案总结?
  • 2026年分析全国数控刀具采购平台厂家多的靠谱之选 - 工业品网
  • 用 Code-Server+cpolar 打造随身云端 VS Code全攻略
  • 海西车牌靓号代选,海西车牌靓号价格-上牌选号
  • 2026年质量好的干湿联合闭式冷却塔/干冷式闭式冷却塔厂家选购指南与推荐 - 行业平台推荐
  • STC32G144K246-V1.1​​PCB_实验箱电路图
  • 2026年评价高的三维调节阻尼托底轨/阻尼托底轨厂家推荐及选择参考 - 行业平台推荐
  • 2026年数控刀具定制实时询价平台,全国哪些品牌好用 - 工业品牌热点
  • 2026年评价高的圆形别墅电梯厂家推荐及采购参考 - 行业平台推荐
  • 金昌车牌靓号代选,金昌车牌靓号价格-上牌选号
  • 2026年热门的防倾斜钢珠轨/反弹钢珠轨厂家选购指南与推荐 - 行业平台推荐
  • 济宁车牌靓号代选,济宁车牌靓号价格-上牌选号
  • 深圳德耀星通科技有限公司值得选吗,从基本信息和评价来判断可信度 - 工业设备
  • 看完就会:8个AI论文写作软件测评!自考毕业论文+开题报告高效写作攻略
  • 医院电子病历TinyMCE粘贴Word批注内容出现乱码怎么修复?
  • 宜春车牌靓号代选,宜春车牌靓号价格-上牌选号
  • 2026年质量好的半圆形电梯/家用圆形电梯最新TOP厂家排名 - 行业平台推荐
  • 新手也能上手,AI论文平台 千笔写作工具 VS 文途AI,MBA专属更高效!
  • 西宁车牌靓号代选,西宁车牌靓号价格-上牌选号
  • 松下 PLC FP - XH 4 轴控制程序分享:双轴直线插补实战经验