Mysql基础之通信

Posted hangzhi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql基础之通信相关的知识,希望对你有一定的参考价值。

通信

网络通信:客户端与服务端之间使用TCP协议进行通信,通常为3306端口

本地通信

windows:客户端进程与服务端进程可用命名管道或共享内存通信

unix:使用unix域套接字文件通信

服务端处理客户端的请求

技术图片

  1. 连接管理:客户端通过上述通信方式与服务端建立连接。客户端携带认证信息请求服务端连接,认证通过后,服务端与客户端建立连接,同时为其创建一个处理线程,如果客户端关闭连接,处理线程回收缓存但是不会被销毁等待指派给下个客户端。

  2. 解析与优化

    1. 查询缓存:查询存储引擎中的数据前先查询缓存中是否存在,存在就直接返回。mysql的缓存系统会监听表如果有任何更新操作就会更新缓存。因为需要维护这块缓存而造成一系列的开销,从mysql5.7.20开始不推荐使用查询缓存,8.0被删除。

    2. 语法解析:编译过程

    3. 查询优化:因为客户端写的sql执行起来效率并不是很高,所以mysql的优化程序会对语句进行一些优化,并生成一个执行计划,我们可通过explain查看这个语句的执行计划。包含用到的索引查询,表之间的连接顺序。

  3. 存储引擎:其实就是表数据存储写入的物理存储处理器。存储引擎有多种可通过show engines查看当前mysql服务器支持的引擎。我们在创建表时会同时声明当前表的存储引擎,后续也可修改。ALTER TABLE engine_demo_table ENGINE = InnoDB;

注:来自MySQL是怎样运行的读书笔记

以上是关于Mysql基础之通信的主要内容,如果未能解决你的问题,请参考以下文章

MySQL基础篇之常用基本命令

Java开发基础不牢?mysql创建联合索引语句

mysql数据库之mysql基础命令

mysql基础之七-;mysql读写分离之amoeba

mysql基础之三-;mysql执行计划

MYSQL之——基础SQL