> 技术文档 > 深入浅出MySQL:概述与体系结构解析_《深入浅出mysql》深入浅出

深入浅出MySQL:概述与体系结构解析_《深入浅出mysql》深入浅出


目录

    • 1. 初识MySQL
      • 1.1. 数据
        • 1.1.1. OLTP(联机事务处理)
        • 1.1.2. OLAP(联机分析处理)
    • 2. SQL
      • 2.1. 定义
      • 2.2. DQL(数据查询语言
      • 2.3. DML(数据操纵语言)
      • 2.4. DDL(数据定义语言)
      • 2.5. DCL(数据控制语言)
      • 2.6. TCL(事务控制语言)
    • 3. 数据库术语
    • 4. MySQL体系结构
      • 4.1. 连接器
      • 4.2. MySQL内部连接池
        • 4.2.1 线程模型
        • 4.2.2. 主线程
        • 4.2.3. 连接线程
        • 4.2.4. MySQL的线程模型优化
      • 4.3. 管理服务和工具组件
      • 4.4. SQL接口
      • 4.5. 查询解析器
      • 4.6. 查询优化器
      • 4.7. 缓冲组件
    • 5. 数据库设计三范式及反范式
      • 5.1. 空间和时间的关系
        • 5.1.1. 三范式目的
        • 5.1.2. 三范式内容
        • 5.1.3. 反范式
      • 5.2. 三范式与反范式的权衡
    • 6. 怎么执行一条SELECT语句
      • 6.1. 连接器
        • 6.1.1. 接收连接
        • 6.1.2. 管理连接
        • 6.1.3. 校验用户信息
      • 6.2. 查询缓存
        • 6.2.1. 功能
        • 6.2.2. 工作原理
      • 6.3. 分析器
        • 6.3.1. 词法分析
        • 6.3.2. 语法分析
      • 6.4. 优化器
        • 6.4.1. 制定执行计划
        • 6.4.2. 选择最优索引
        • 6.4.3. 最小化执行成本
      • 6.5. 执行器
        • 6.5.1. 获取数据
        • 6.5.2. 返回结果
      • 参考

1. 初识MySQL

1.1. 数据库

数据库是按照一定的数据模型组织、存储和管理数据的集合。数据库系统可以分为不同类型,主要包括OLTP和OLAP。

1.1.1. OLTP(联机事务处理)

OLTP(Online Transaction Processing)主要用于处理大量的短事务,如插入、更新和删除操作。其特点包括:

  • 高并发:支持大量用户同时操作。
  • 事务性:确保数据的一致性和完整性。
  • 实时性:快速响应用户请求。
  • 应用场景:电商平台、银行系统、在线订票等。
1.1.2. OLAP(联机分析处理)

OLAP(Online Analytical Processing)主要用于复杂的查询和数据分析。其特点包括:

  • 复杂查询:支持多维度、多层次的数据分析。
  • 大数据量:处理和分析海量数据。
  • 数据仓库:通常建立在数据仓库基础上。
  • 应用场景:商业智能、市场分析、数据挖掘等。

2. SQL

SQL(Structured Query Language)是用于管理和操作关系数据库的标准语言。SQL包括多个子语言,每个子语言负责不同的功能。

2.1. 定义

SQL是一种用于与数据库进行通信的语言,支持数据的查询、更新、插入和删除等操作。它同时支持数据库对象的创建和管理,如表、视图和索引。

2.2. DQL(数据查询语言)

DQL主要用于查询数据,最常用的命令是SELECT

示例:

SELECT name, age FROM users WHERE age > 18;

2.3. DML(数据操纵语言)

DML用于数据的插入、更新和删除操作,包括INSERTUPDATEDELETE

示例:

INSERT INTO users (name, age) VALUES (\'Alice\', 30);UPDATE users SET age = 31 WHERE name = \'Alice\';DELETE FROM users WHERE name = \'Alice\';

2.4. DDL(数据定义语言)

DDL用于定义和管理数据库结构,包括CREATEALTERDROP等命令。

示例:

CREATE TABLE users ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), age INT);ALTER TABLE users ADD COLUMN email VARCHAR(100