MySQL体系管理

网友投稿 231 2022-11-01


MySQL体系管理

客户端与服务端模型

c/s架构的服务 (client/Server)

客户端

mysql

mysqladmin

mysqldump

MySQL的连接方式

TCP/IP

mysql -uroot -p123 -h10.0.0.52

mysql -uroot -p123 -S /application/mysql/tmp/mysql.sock

问题:

1.mysql默认的连接方式是什么? # Socket 不需要经过TCP三次握手四次挥手 2.mysql -uroot -p123 #Socket 什么都不加,走默认连接方式 3.mysql -uroot -p123 -hlocalhost # Socket 不是所有的-h都是TCP 4.mysql -uroot -p123 -h127.0.0.1 #TCP 只要-h后面加IP地址,就是TCP ## 错误写法 5.mysql -uroot -p123 -h10.0.0.51 -S /application/mysql/tmp/mysql.sock # TCP 6.mysql -uroot -p123 -S /application/mysql/tmp/mysql.sock -h10.0.0.51 #TCP 只要加 -h后面是IP地址,不管socket写在什么位置,一律TCP连接

mysql服务器构成

实例

MySQL的后台进程+多个线程+预分配的内存结构

mysql守护进程的程序结构

连接层**

1.提供两种连接方式 - TCP - Socket2.验证用户的合法性 3.提供了一个专用的线程,接收SQL和SQL层交互

1.接收连接层传递来的有权限的SQL语句2.验证SQL语句(syntax)的语法3.验证SQL语句的语义,执行的是查询,删除,修改...之类的操作 - DML:数据的操作语言(表数据的增删改) - DDL:数据的定义语言(表结构的增删改) - DCL:数据的控制语言(权限的授与撤) - DQL:数据的查询语言(select的关键字查询) - DTL:事物语言的控制4.解析器,解析SQL语句,生成多种执行计划5.优化器,根据解析器生成的多种执行计划,选择最优的一条6.执行器,执行最优的一条SQL语句 - 提供一个专用的线程,和储存引擎层交互7.接收存储引擎层返回的数据,将数据传递给连接层8.如果前面有缓存,将数据写入缓存一份9.如果开启了binlog,记录日志(binlog)

存储引擎层

1.接收SQL层传递来的SQL语言信息2.去对应的库下找对应的表中数据,结果化成表的形式,返回给SQL层3.提供了一个专用的线程,和SQL交互

MySQL的结构

MySQL表结构划分

断:由多个区构成,一张表,就是一个段

区:由于个页构成,一个区,由64个页构成,1M

(块,页)block:MySQL最小的储存单元,默认16k

使用systemd管理MySQL

[root@m01 ~]# vim /usr/lib/systemd/system/mysqld.service [Unit] Description=MySQL Server Documentation=man:mysqld(8) Documentation=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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:spring boot 常见http请求url参数获取方法
下一篇:MySQL入门及安装
相关文章

 发表评论

暂时没有评论,来抢沙发吧~