标签:体系 语句 管理 mysql TCP SQL MySQL 连接
MySQL体系管理
客户端与服务端模型
C/S架构服务
Client/Server
客户端
- mysql
- mysqladmin
- mysqldump
MySQL的连接方式
TCP/IP
mysql -uroot -p123 -h10.0.0.51
Socket
mysql -uroot -p123 -s /application/mysql/tmp/mysql.sock
1.mysql默认走socket
2.什么都不加走默认连接方式
3.不是所有-h都是TCP
4.只要-h后面加IP地址,就是TCP
MySQL服务器构成
实例
MySQL的后台+多线程+预分配的内存结构
mysql守护进程的程序结构
连接层
1.提供两种连接方式
- TCP
- Socket
2.验证用户的合法性
3.提供了一个专用的线程,接收SQL和SQL层交互
SQL层
1.接收连接层传递来的有权限的SQL语句
2.验证SQL语句(Syntax)的语法
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的结构
逻辑结构
# 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=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
标签:体系,语句,管理,mysql,TCP,SQL,MySQL,连接 来源: https://www.cnblogs.com/ghjhkj/p/16547451.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。