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


---数据库专栏---


### 数据库基础与MySQL核心组件深度解析

  • [@[toc](数据库基础与MySQL核心组件深度解析)](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [一、数据库基础:为什么我们需要它?](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [1.1 什么是数据库?](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [1.2 使用数据库的九大作用](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [二、关系型数据库与主流产品](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [2.1 关系型数据库(Relational Database)定义](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [2.1 非关系型数据库](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [2.2 主流关系型与非关系型数据库](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [三、MySQL安装与核心配置](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [3.1 MySQL 服务端程序 `mysqld`](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [3.2 数据库服务器、数据库与表的关系](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [3.3 选项(配置)文件详解](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [四、MySQL客户端工具](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [五、客户端与服务器的通讯方式](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [5.1 C/S架构(客户端/服务器)](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [5.2 B/S架构(浏览器/服务器)](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [六、SQL语言与分类](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [6.1 什么是 SQL?](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [6.2 SQL 三大分类](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [七·、MySQL 8.0 架构与存储引擎深度对比](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [7.1 MySQL 8.0 服务器架构](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [7.2 核心存储引擎特性对比](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)
  • [八、总结与展望](#数据库基础与MySQL核心组件深度解析 @toc 一、数据库基础:为什么我们需要它? 1.1 什么是数据库? 1.2 使用数据库的九大作用 二、关系型数据库与主流产品 2.1 关系型数据库(Relational Database)定义 2.1 非关系型数据库 2.2 主流关系型与非关系型数据库 三、MySQL安装与核心配置 3.1 MySQL 服务端程序 mysqld 3.2 数据库服务器、数据库与表的关系 3.3 选项(配置)文件详解 四、MySQL客户端工具 五、客户端与服务器的通讯方式 5.1 C/S架构(客户端/服务器) 5.2 B/S架构(浏览器/服务器) 六、SQL语言与分类 6.1 什么是 SQL? 6.2 SQL 三大分类 七·、MySQL 8.0 架构与存储引擎深度对比 7.1 MySQL 8.0 服务器架构 7.2 核心存储引擎特性对比 八、总结与展望)

一、数据库基础:为什么我们需要它?

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 非关系型数据库

  • Redis :流行的基于键值对的内存数据库,常用作缓存,支持多种数据结构。
  • mongoDB :基于NoSQL的文档型数据库,易扩展、高性能、高可用性。

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

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

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架构一种改进。由于所有的业务逻辑都由服务器程序处理,所以客户端仅使用浏览器就可以完成所有操作,大大降低了客户端的维护成本。

  • 优点:客户端零维护,只需要安装一个浏览器即可;所有业务都集中在服务器端,业务扩展非常方便;维护成本低,只需要维护服务器即可。
  • 缺点:服务器安全与业务处理能力需要花费很大精力与成本;不同浏览器支持不尽人意。
  • 示例应用:常见的大型网站等对外公开用户提供的网络服务。

HTTP请求 HTTP响应 数据库操作请求 数据库操作响应 客户端/浏览器 服务器程序 数据库


六、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 (特性) MyISAM Memory InnoDB
事务支持 (Transactions) No No Yes
外键支持 (Foreign key support) No No Yes
锁粒度 (Locking granularity) Table (表级锁) Table (表级锁) Row (行级锁)
集群索引 (Clustered indexes) No No Yes
数据缓存 (Data caches) No N/A Yes
存储限制 (Storage limits) 256TB RAM (内存) 64TB
B-tree 索引 Yes Yes Yes
MVCC No No Yes

关键结论:

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

八、总结与展望

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

核心知识点回顾:

  • 数据库解决了数据持久化、结构化和并发控制等核心问题。
  • 关系型数据库以二维表形式存储数据,MySQL是其中最受欢迎的开源产品。
  • MySQL采用C/S架构通讯,mysqld 是其服务端核心程序。
  • SQL分为 DDL、DML、DCL 三大类,分别用于定义结构、操作数据和权限管理。
  • InnoDB存储引擎因支持事务和行级锁,是现代应用的首选,而 MyISAM 和 MEMORY 则适用于特定的读优化或临时存储场景。

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

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


相关推荐
卿雪1 小时前
MySQL【索引】篇:索引的分类、B+树、创建索引的原则、索引失效的情况...
java·开发语言·数据结构·数据库·b树·mysql·golang
cipher1 小时前
删库之夜V2·天网恢恢
服务器·数据库·git
a***56061 小时前
【Navicat+MySQL】 在Navicat内创建管理数据库、数据库表。
数据库·mysql·oracle
赵渝强老师1 小时前
【赵渝强老师】PostgreSQL锁的类型
数据库·postgresql
一点事1 小时前
oracle:密码过期处理
数据库·oracle
Allen_LVyingbo1 小时前
解锁医疗AI新引擎:从数据库与编程语言透视合成数据生成(代码部分)
数据库·人工智能·深度学习·健康医疗
n***26561 小时前
数据库(MySQL):使用命令从零开始在Navicat创建一个数据库及其数据表(一).创建基础表
数据库·mysql·oracle
枫叶丹41 小时前
【Qt开发】Qt窗口(五) -> 非模态/模态对话框
c语言·开发语言·数据库·c++·qt