【mysql】mysql体系结构

  本站以分享各种运维经验和运维所需要的技能为主

《python零基础入门》:python零基础入门学习

《python运维脚本》: python运维脚本实践

《shell》:shell学习

《terraform》持续更新中:terraform_Aws学习零基础入门到最佳实战

《k8》从问题中去学习k8s

《docker学习》暂未更新

《ceph学习》ceph日常问题解决分享

《日志收集》ELK+各种中间件

《运维日常》运维日常

《linux》运维面试100问

《DBA》db的介绍使用(mysql、redis、mongodb...)

mysql体系结构管理

1.客户端与服务端模型

1)数据是一个典型的C/S结构的服务
1.mysql自带的客户端工具
	mysql
	mysqladmin
	mysqldump
	
3.mysql是一个二进制程序,后台守护进程
	单进程
	多线程
2)mysql的连接方式
1.TCP/IP连接
2.socket连接

	#tcp/ip连接
	mysql -uroot -p -h127.0.0.1
	mysql -uroot -p -h127.0.0.1 -S /tmp/mysql.sock
	
	#socket连接
	mysql -uroot -p -hlocalhost
	mysql -uroot -p
	
	#注意:
	1)不一定-h就是TCP/IP连接,如果是localhosts就是socket连接
	2)socket连接比TCP/IP连接快,TCP/IP连接需要经过三次握手,四次挥手,慢
	3)socket连接只能本地连接,远程不能使用

2.MySQL服务构成

1)什么是实例
1.MySQL的后台进程 + 线程 + 预分配的内存空间
2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内存结构供MySQL处理数据使用。

2.MySQL服务程序构成

1)连接层
1.验证用户身份,判断用户名和密码
2.提供两种连接方式
3.与SQL层建立交互的线程
2)sql层
1.接收连接层传过来的数据
2.判断sql语句的语法
3.判断SQL语句的语义
4.解析器:解析sql语句,生成执行计划
5.优化器:选出执行计划中最优的计划
6.执行器:执行计划
	6.1 与存储引擎层建立交互
	6.2 将优化后要执行的SQL发给存储引擎层
7.记录缓存,如果前端有redis,将数据缓存至redis
8.记录日志
3)存储引擎层
1.与sql层建立交互,接收SQL层传来的SQL语句
2.与磁盘进行交互,获取数据,将数据返回给sql层

3.mysql逻辑结构

1.库:库的下面全是表
2.表:元数据 + 真实数据行
3.元数据:列 + 其它属性(行数+占用空间大小+权限)
4.列:列名字 + 数据类型 + 其他约束(非空、唯一、主键、非负数、自增长、默认值)

4.mysql物理结构

1.MySQL的最底层的物理结构是数据文件,也就是说,存储引擎层,打交道的文件,是数据文件。
2.存储引擎分为很多种类(Linux中的FS)
3.不同存储引擎的区别:存储方式、安全性、性能

#数据库创建时,不论库名还是表名,尽量都用小写字母

5.mysql物理大小

1.段:理论上一个表就是一个段,由多个区构成,(分区表是一个分区一个段)
2.区:连续的多个页构成
3.页:最小的数据存储单元,默认是16k

4.分区表:一个区构成一张段,就是一张表

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值