1_mysql(基础)

本文介绍了MySQL的体系结构,包括mysqld程序结构、SQL语句的执行过程,详细讲解了SQL层的各个阶段,如语法验证、权限检查、优化器等。此外,还涉及存储引擎层的作用和物理存储结构。在SQL基础应用部分,讨论了数据类型如char与varchar的区别,表属性如主键、非空约束和索引,以及DDL操作的区别,如delete、drop和truncate。
摘要由CSDN通过智能技术生成

课程大纲:https://www.jianshu.com/p/edd2e20aeaee

一、MySQL 体系结构与管理

1、mysqld程序结构
在这里插入图片描述
2、 一条SQL语句的执行过程
连接层
(1)提供连接协议:TCP/IP 、SOCKET
(2)提供验证:用户、密码,IP,SOCKET
(3)提供专用连接线程:接收用户SQL,返回结果
SQL层 (重点)
(1)接收上层传送的SQL语句
(2)语法验证模块:验证语句语法,是否满足SQL_MODE
(3)语义检查:判断SQL语句的类型
DDL :数据定义语言、DCL :数据控制语言、DML :数据操作语言、DQL: 数据查询语言
(4)权限检查:用户对库表有没有权限
(5)解析器:对语句执行前,进行预处理,生成解析树(执行计划),说白了就是生成多种执行方案.
(6)优化器:根据解析器得出的多种执行计划,进行判断,选择最优的执行计划
代价模型:资源(CPU IO MEM)的耗损评估性能好坏
(7)执行器:根据最优执行计划,执行SQL语句,产生执行结果。执行结果:在磁盘的xxxx位置上
(8)提供查询缓存(默认是没开启的),会使用redis tair替代查询缓存功能
(9)提供日志记录(日志管理章节):binlog,默认是没开启的。
存储引擎层(类似于Linux中的文件系统)
负责根据SQL层执行的结果,从磁盘上拿数据;将16进制的磁盘数据,交由SQL结构化化成表;连接层的专用线程返回给用户。
3、 物理存储结构引入
在这里插入图片描述

二、SQL基础应用

1、数据类型
char与varchar的区别:char是固定长度;varchar是可变长度
char(11) :定长 的字符串类型,在存储字符串时,最大字符长度11个,立即分配11个字符长度的存储空间,如果存不满,空格填充。
varchar(11):变长的字符串类型看,最大字符长度11个。在存储字符串时,自动判断字符长度,按需分配存储空间。
2、表属性
① 约束(一般建表时添加):
primary key :主键约束
设置为主键的列,此列的值必须非空且唯一,主键在一个表中只能有一个,但是可以有多个列一起构成。
not null :非空约束
unique key :唯一键
unsigned :无符号,针对数字列,非负数。
② 其他属性:
key :索引
可以在某列上建立索引,来优化查询,一般是根据需要后添加
default :默认值
列中,没有录入值时,会自动使用default的值填充
auto_increment:自增长
针对数字列,顺序的自动填充数据(默认是从1开始,将来可以设定起始点和偏移量)
**comment ** : 注释
3、DDL应用
① 删除:delete、drop、truncate 的区别
delete:DML操作, 是逻辑性质删除,逐行进行删除,速度慢;一般delete语句都有where的条件
drop:
truncate:DDL操作,对与表段中的数据页进行清空,速度快.

TRUNCATE 和DELETE只删除数据, DROP则删除整个表(结构和数据)。
一般而言,速度:drop > truncate > delete
truncate只能对TABLE; delete可以是table和view
4、information_schema.tables视图
DESC information_schema.TABLES
TABLE_SCHEMA ---->库名
TABLE_NAME ---->表名
ENGINE ---->引擎
TABLE_ROWS ---->表的行数
AVG_ROW_LENGTH ---->表中行的平均行(字节)
INDEX_LENGTH ---->索引的占用空间大小(字节)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值