MySQL体系管理
客户端与服务端模型
mysql是一个典型的C/S架构的服务
mysql自带的客户端程序:
mysql
mysqladmin
mysqldump
mysql的连接方式
TCP/IP的连接方式
mysql -uji -p123 -h10.0.0.51
Socket连接方式
mysql -uji -p123 -S /application/mysql/tmp/mysql.sock
1.mysql默认的连接方式是什么?
Socket
不需要经过TCP三次握手四次挥手,速度较快
2.mysql -uroot -p123的连接方式是什么?
Socket
什么都不加,走默认的连接方式
3.mysql -uroot -p123 -hlocalhost的连接方式是什么?
Socket
在-h后面为IP地址才是TCP连接
4.mysql -uroot -p123 -h127.0.0.1的连接方式是什么?
TCP/IP
在-h后面加入IP地址,就是TCP
MySQL服务器构成
实例
1.MySQL的后台进程+线程+预分配的内存结构
2.MySQL在启动的过程中会启动后台守护进程,并生成工作线程,预分配内存结构供MySQL处理数据使用
mysqld守护进程的程序结构

连接层
1.提供两种连接方式
TCP/IP
Socket
2.验证用户的合法性(用户名、密码)
3.提供了一个专用线程,接收SQL和SQL层交互
SQL层

1.接收连接层传递来的合法的SQL语句
2.验证SQL语句的语法
3.验证SQL语句的语义,判断执行的是查询、删除、修改...操作
DML
DDL
DCl
DQL
DTL
4.解析器,解析SQL语句,生成多种执行计划
5.优化器,根据解析器生成的多种计划,选择最优的一条
6.执行器,执行优化器选好的SQL语句
提供一个专用线程,和存储引擎层交互
7.接收存储引擎层返回的数据,将数据返回给连接层
8.如果前面有缓存,就将数据写入缓存一份
9.如果开启了binlog,就会记录日志(binlog)
存储引擎层
1.接收SQL层传递来的SQL语句信息
2.去对应的库下找对应的表中数据,结构化成表的形式,返回给SQL层
3.提供了一个专用线程和SQL层交互
MySQL的结构
1.逻辑结构
MySQL数据库管理员的操作对象
库
表
元数据
列(字段、列名)
其它属性(数据类型、默认值、主键、唯一、自增...)
真实数据
2.物理结构
最底层的数据文件
MySQL表结构划分
段:由多个区构成,一张表就是一个段
区:由多个页构成,一个区由64个页构成(1M)
页(块,block):MySQL最小的存储单元,默认为16k
使用systemd管理MySQL
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端