当前位置: 首页 > news >正文

wordpress企业建站教程网站怎么建

wordpress企业建站教程,网站怎么建,珠宝设计师网,wordpress找回删除插件背景: 本文开始整理mysql相关的文章,用于收集数据库相关内容;包括mysql架构和存储方式、索引结构和查询优化、数据库锁等内容。思考如何根据具体的业务给出最优的分表规划和表设计、字段选择和索引设计、优化的SQL语句,以及数据库…

背景:

本文开始整理mysql相关的文章,用于收集数据库相关内容;包括mysql架构和存储方式、索引结构和查询优化、数据库锁等内容。思考如何根据具体的业务给出最优的分表规划和表设计、字段选择和索引设计、优化的SQL语句,以及数据库参数优化。
本文作为mysql系列的第一篇,先从整体上理解一下mysql的组成结构以及查询流程,然后对存储引擎进行简要介绍,作为后续文章的基础。

1.mysql架构

mysql整体上可分为客户端与服务器端,客户端包括客户端连接工具以及连接驱动(如:JAVA的JDBC);
服务端指提供数据库能力的Mysql服务器,架构如下图所示:
请添加图片描述
上图来自mysql官网,较为清晰、分层次地展示了mysql的架构和每层的组成组件。

1.1 连接层

mysql启动时,连接层负责启动监听端口(默认为3306),接受处理TCP客户端的连接、并完成鉴权和建链操作。连接建立后,连接层为客户端会话分配资源、管理会话的生命周期(会话的创建、维护、销毁)。
连接期间,将客户端的消息转发到服务层,以及将查询结果返回给客户端,完成mysql客户端与服务端间的通讯。通讯使用mysql协议进行,支持配置明文或加密通讯。这部分内容较多,在第2章中详细介绍。

1.2 服务层

服务层由SQL解析器、优化器和执行引擎和查询缓存等组件组成。
(1) 查询缓存
查询缓存中存放SQL语句及其对应的结果集,遇到相同查询时,根据缓存返回结果,避免重复查询数据库。因效率和性能问题,在mysql8中已废弃,本文后续直接忽略服务层的查询缓存。
(2) 解析器和优化器
解析器与编译器逻辑相同,目标是SQL语句。对SQL进行语法解析和语义解析并生成解析树,解析失败时会返回错误信息。优化器对解析树基于统计信息和索引信息等进行优化,从多条执行路径中选择最优的一条发送给执行引擎。
(3) 执行引擎
根据优化器生成的执行路径,调用存储引擎接口,完成数据库操作。

1.3 存储层

存储层由存储引擎和文件系统组成。mysql数据库表和数据以文件形式存放于磁盘中。文件系统包括:表、索引、数据文件、undo/redo/binlog日志文件等。存储引擎可以理解为读取文件的软件驱动。mysql的存储层被设计为插件机制,用于支持不同的存储引擎,如InnoDB, CSV,Memeory等;存储引擎将在第4章中详细说明。

1.4 查询过程

了解连接层、服务层、存储层后,很清晰地得到以下查询流程:
![外链图片转存失败,源站可能有防盗链机制,建议将图请添加图片描述
【1】客户端与连接器建立mysql链接,并读取客户端的SQL语句;
【2】SQL语句经过解析器、预处理器、优化器的解析和优化生成执行路径;
【3】执行引擎根据执行路径的指令,调用存储引擎接口;
【4】存储引擎从文件系统读取对应的信息返回。

2.mysql协议消息

本章节结合抓包介绍mysql协议的消息流程图。
Before Content 1:
Linux机器上的mysql客户端一般使用SSL加密通讯,抓包不可读,可通过以下两种方式强制使用明文传输。
(1)连接命令添加"–ssl-mode=DISABLED"参数
如下所示:

mysql -u root -p{Password} --ssl-mode=DISABLED

(2)修改mysql.cnf配置文件
linux上mysql的配置文件路径一般为:/etc/my.cnf, 添加客户端配置:

[client]
ssl-mode = DISABLED

Before Content 2:
执行sql语句:

#1.连接mysql
mysql -uroot -p{Password} --ssl-mode=DISABLED# 2.执行查询SQL
mysql> SELECT COUNT(1) FROM test.test_mysql;# 输入quit断链
mysql> quit;

抓包命令:

tcpdump -i any port 3306 -w ./test_mysql.cap

得到的数据包如下所示:
请添加图片描述

消息流程图

客户端与mysql之间使用自定义的mysql协议通讯,具体的消息流程如下图所示:
请添加图片描述
可以分为四个阶段:

[1] 通过3次TCP握手,建立TCP链接

[2] mysql会话建立过程, 对应消息N1-N3

N1:服务器向客户端发送"Server Greeting"消息,携带服务器的版本和能力集等信息
请添加图片描述
N2:客户端向服务器发送"Login Request"消息,携带认证信息;
请添加图片描述
N3:服务器鉴权成功后,返回"Response OK"消息.
请添加图片描述

[3] 执行SQL阶段,对应消息N4-N5

N4执行查询"SELECT COUNT(1) FROM test.test_mysql;",对应消息如下所示:
请添加图片描述
N5是服务器返回的查询结果:
请添加图片描述

[4] 断链阶段,对应消息N6

请添加图片描述
客户端向服务器发送"Request Quit"消息断链mysql链路; 之后断开TCP链接。

3.存储引擎介绍

理解存储引擎,需要建立在数据存储形式以及底层IO的基础上(在后续文章中介绍)。本章仅从特性的角度进行简要说明。

如前文介绍,mysql在数据存储层通过插件机制实现,从而支持多种存储引擎,可以在定义表结构时指定使用的存储引擎。常见的存储引擎包括MyIsam、InnoDB、MEMORY、Archive、CSV、Blackhole,其中InnoDB是Mysql8默认的存储引擎。一般而言,MyIsam和InnoDB已满足大部分的业务场景,其他存储引擎作简单了解即可。

3.1 MyIsam

(1) 事务
不支持事务:每条SQL语句都会被直接提交、无法回滚;
(2) 数据库锁
支持表锁、不支持MVCC和行锁:当读写或者写写冲突时,整张表会被锁住,不适应并发较大的场景;
(3) 支持外键
不支持外键;
(4) 存储方式
表结构存储在.frm文件;记录数据存储在.myd文件中,而索引存放在.myi文件中。

3.2 InnoD

(1) 事务
支持事务;
(2) 数据库锁
支持行锁和MVCC, 适用于并发较大的场景;
(3) 支持外键
支持外键,允许在不同表之间建立外键关系,确保数据的完整性和一致性;
(4) 存储方式
表结构存储在.frm文件;记录数据和索引存储在.ibd文件中。

3.3 其他存储引擎

(1) MEMORY
数据保存在内存中,查询和更新速度较快。因不支持持久化,重启数据库会丢失所有记录;
(2) Archive
用于归档数据,仅支持插入和查询,不支持删除和修改;
(3) CSV
记录以csv文件形式保存;
(4) Blackhole
测试使用,所有写入的数据都会丢失,只进不出,如同丢进了黑洞。

http://www.yayakq.cn/news/709804/

相关文章:

  • 能源科技网站建设营销型企业网站建设哪家好
  • 外贸建站福州app制作公司
  • 做网站需要注意哪些网站建站报价表
  • 内蒙古高等级公路建设开发有限责任公司网站微信平台公众号
  • 免费企业网站建站北京今天的最新发布消息
  • 十大免费跨境网站韩国还有出线的可能
  • 西京一师一优课建设网站asp 英文企业网站 免费
  • dwcc2017怎么做网站百度推广竞价是什么意思
  • 天津微网站建设装饰设计效果图
  • 张家界建设网站免费网站推荐软件
  • 表情制作器网站优化预算
  • 网站开发四个重点动漫设计与制作课程有哪些
  • 六安网站制作人才招聘上海到北京的机票
  • 承德网站制作公司优选网十科技社交媒体市场营销
  • wordpress 微网站手机网站建设电话咨询
  • 做网站哪家好什么是网络设计制作
  • 网站icp备案代理网站响应式和电脑手机
  • 商城网站建设包括哪些泰州网页设计需要多少钱
  • 哈尔滨建站怎么做美食网站怎样做蛋挞
  • 制作微信的网站公司建设网站需要固定ip吗
  • 网站建设发展网站文章怎么做才能被快速收录
  • 做网站分类模块的设计思路tplink域名申请
  • 如何创建一个国外免费网站广州网站开发外包公司
  • 滨江做网站海拉尔网页设计
  • 制作网站需要什么知识哪个网站上门做护肤
  • 专门做画册封面的网站做网站后端要学什么
  • 长沙网站制作主要公司网站页面怎么算
  • 怎么改网站域名分类网站推广费用多少
  • 河间做网站wordpress页面代码
  • 网站建设拿什么框架建设网站必须要服务器