MySQL基础

1. MySQL软件基本架构

1.1 MySQL体系结构

1)数据库

数据库(数据库文件)是一个或者一组二进制文件,通常来说存在于文件系统之上

2)数据库实例

由数据库后台进程/线程以及一个共享区域组成(程序的概念),数据库实例是用来操作数据库文件的

MySQL中,数据库实例和数据库是一一对应的,没有Oracle的一对多(RAC)的机制

3)MySQL体系结构

  • 单进程多线程结构
    • 不会影响MySQL的性能,看程序如何写(多进程程序,进程间通信开销大于多线程)
  • 存储引擎的概念
    • 可以理解成文件系统,例如FAT32、NTFS、EXT4,一个表示一个分区,引擎就是分区的文件系统
    • 存储引擎的对象就是表
    • show tables;可以看到每个表对于的是上面的引擎(Engine)
    • 除了特殊情况,现在就只考虑InnoDB

4)逻辑存储结构

instance
database
schema
table
view
# 一个DB对于一个schema
# 一个DB对应一个文件夹
# 一个表对应一组文件
  • 图示:

 

  •  MySQL中的一个Database对应一个schema,之所以要有这个schema,是为了兼容其他数据库
  • information_schema数据库不是文件夹,存在于内存中,在启动时创建

1.2 MySQL软件架构

1)基本软件架构图示

2)执行逻辑架构

  • 整个架构分为两层
    • 上层是mysqld,被称为“SQL Layer”
    • 下层是各种各样对上提供接口的存储引擎,被称为“Storage Engine Layer”

1.3 查询操作的执行流程

1)图示

 2)详细分析

2. SQL语句

  • SQL(Structured Query Language)结构化查询语言,它是一种对关系数据库中的数据进行定义和操作的语言方法。

2.1 DDL数据定义语言

  • DDL数据定义语言,包括 create,alter,drop 等

1)库操作

2)表操作

3)字段操作

2.2 DML数据操作语言

  • DML数据操作语言,包括 select,insert,delete,update等

2.3 DQL 数据查询语言

1)SELECT语句的执行流程

  • 执行流程中的组件:
    • 查询缓存 --> 解析器 --> 预处理器 --> 优化器 --> 查询执行引擎 --> 存储引擎
  • SELECT语句的执行流程:
    • FROM Clause --> WHERE Clause --> GROUP BY --> HAVING Clause --> ORDER BY --> SELECT --> LIMIT

2)SQL解析顺序

3)单表查询

4)多表查询

5)子查询

6)联合查询

2.4 视图

3. 数据类型

3.1 字符型

3.2 数值型

3.3 日期时间型

3.4 内建类型

3.5 数据类型的修饰符

4. 用户及权限管理

4.1 MySQL元数据数据库

4.2 用户账号管理

4.3 用户密码设置

4.4 用户权限管理

5. 字符集相关

5.1 MySQL中文数据乱码

5.2 MySQL字符集详解

5.3 线上MySQL字符集的修改

 

 

 

posted @ 2020-11-29 00:31  Praywu  阅读(196)  评论(0编辑  收藏  举报