一、体系结构
1. C/S结构模型
Client :
Server :
2. 实例
实例: mysqld守护进程+线程(M,IO,SQL,Purge…)+预分配的内存(独占)
公司: boss+员工(经理,干活的)+ 办公区
3. MySQL 核心体系结构(SQL语句的执行过程)
Server层 (实例层)
engine层 (存储层)
和磁盘交互。相当Linux文件系统
具体见图。
参考:https://www.jianshu.com/p/e872bc12f583
4. 对象逻辑结构
Linux MySQL
目录 库
文件 表
库: 库名 、库属性
表: 表名、表属性、列(列名、列属性)、行 -----》 元数据(数据字典)+数据
mysql> show databases;
mysql> use mysql
mysql> show tables;
5. 对象-物理存储结构-宏观
cd /data/3306/data
库: 对应着 OS 中的目录
表:
例如:
user 表 MyISAM
user.frm : 存储数据字典信息(列相关信息)
user.MYD : 存储数据行
user.MYI : 存储索引
servers 表 InnoDB
servers.frm : 存储数据字典信息(列相关信息)
servers.ibd : 存储数据行和索引
6. InnoDB存储引擎-物理存储结构引入-微观结构
存储引擎:MySQL 内部的“文件系统”,和磁盘交互的结构。
segment(数据段) : 表的数据存放的位置,包含1-N个extent(区、簇)
extent (区、簇) : 包含了连续的64个pages,默认1M。
page (数据页) : 最小IO单元,默认是16KB 。连续的4个OS block。
二、SQL基础应用
1. 什么是SQL?
关系型数据库当中通用的查询语言。全名:结构化查询语言。
2. SQL 标准 (ANSI/ISO)
SQL-89
SQL-92
SQL-99
SQL-03
3. SQL 常用分类
DDL : 数据定义语言
DCL : 数据控制语言
DML : 数据操作语言
4. SQL_MODE ?
5.7+ 之后采用的是严格模式。
作用:
为了让我们SQL在执行时更加严谨、有意义,符合常识、逻辑、符合科学等。。。
例子:
1. 日期格式: 2020-07-01 0000-00-00
2. 除法运算: 除数不能为0
查看SQL_MODE:
mysql> select @@sql_mode;
+-------------------------------------------------------------------------------------------------------------------------------------------+
| @@sql_mode |
+----------------------------------------------------------------------------------------------------------------------------------