返回顶部
首页 > 资讯 > 数据库 >1. select语句执行过程-网络通信
  • 862
分享到

1. select语句执行过程-网络通信

1.select语句执行过程-网络通信 2015-06-19 21:06:03 862人浏览 才女
摘要

执行过程图 网络通信 MySQL 是支持多种通信协议的,可以使用同步/异步的方式,支持长连接/短连接。 1.同步/异步 异步的问题 异步可以避免应用阻塞等待,但是不能节省 sql 执行的时间。 如果异步存在并发,每一个 SQL 的执行都

1. select语句执行过程-网络通信

执行过程图

执行过程

网络通信

MySQL 是支持多种通信协议的,可以使用同步/异步的方式,支持长连接/短连接。

1.同步/异步

异步的问题

  • 异步可以避免应用阻塞等待,但是不能节省 sql 执行的时间。
  • 如果异步存在并发,每一个 SQL 的执行都要单独建立一个连接,避免数据混乱。线程的上下文切换,会增加服务器压力
  • 增加编程复杂度

默认是同步,即客户端需要等Mysql服务器的响应,也是符合大多数情况的。

2. 长连接/短连接

短连接就是操作完毕以后,马上 close 掉。长连接可以保持打开,减少服务端创建和释放连接的消耗,后面的程序访问的时候还可以使用这个连接。一般我们会在连接池中使用长连接。

相关命令

2.1.查询连接超时时间

show global variables like "wait_timeout"; -- 非交互式超时时间, 如 JDBC 程序
show global variables like "interactive_timeout"; -- 交互式超时时间, 如数据库工具

默认都是 28800 秒,8 小时。

2.2.查询和设置连接状态

2.2.1 查询连接状态
show global status like "Thread%";
+-------------------+-------+
| Variable_name     | Value |
+-------------------+-------+
| Threads_cached    | 649   |  <—当前被缓存的空闲线程的数量
| Threads_connected | 93    | <—正在使用(处于连接状态)的线程
| Threads_created   | 742   |  <—服务启动以来,创建了多少个线程
| Threads_running   | 5     | <—正在忙的线程(正在查询数据,传输数据等等操作)
+-------------------+-------+
2.2.2 查看开机起来数据库被连接了多少次
show status like "%connections%";
show global status like "%connections%";
+-----------------------------------+---------------------+
| Variable_name                     | Value               |
+-----------------------------------+---------------------+
| Connection_errors_max_connections | 0                   |
| Connections                       | 101395055           |   <–服务启动以来,历史连接数
| Max_used_connections              | 742                 |
| Max_used_connections_time         | 2018-08-21 15:42:38 |
+-----------------------------------+---------------------+
2.2.3 设置thread_cache_size

通过连接线程池的命中率来判断设置值thread_cache_size是否合适, 命中率超过90%以上,设定合理。 (Connections - Threads_created) / Connections * 100 %>=90%

2.3 查询执行状态

 SHOW PROCESSLIST;

2.4查询和设置最大连接数

查看配置

show variables like "max_connections";

在 5.7 版本中默认是 151 个,最大可以设置成 16384(2^14)。

设置配置

set global max_connections = 1000;

3.通信协议

1.Unix Socket

2. tcp/IP

mysql -h192.168.8.211 -uroot -p123456

我 们 的 编 程 语 言 的 连 接 模 块 都 是 用 TCP 协 议 连 接 到 MySQL 服 务 器 的 , 比 如 mysql-connector-java-x.x.xx.jar

3. 命名管道(Named Pipes)

4. 内存共享(Share Memory)

这两种通信方式只能在 windows 上面使用,一般用得比较少。

4.通信方式

  • 单工: 在两台计算机通信的时候,数据的传输是单向的。生活中的类比:遥控器。
  • 半双工: 在两台计算机之间,数据传输是双向的,你可以给我发送,我也可以给你发送, 但是在这个通讯连接里面,同一时间只能有一台服务器在发送数据,也就是你要给我发 的话,也必须等我发给你完了之后才能给我发。生活中的类比:对讲机。
  • 全双工: 数据的传输是双向的,并且可以同时传输。生活中的类比:打电话。 MySQL采用半双工方式

SQL命令一次性发送

客户端发送 SQL 语句给服务端的时候,(在一次连接里面)数据是不能分成小块发送的,不管你的 SQL 语句有多大,都是一次性发送 比如我们用 mybatis 动态 SQL 生成了一个批量插入的语句,插入 10 万条数据,values后面跟了一长串的内容,或者 where 条件 in 里面的值太多,会出现问题。 相关配置max_allowed_packet,默认4M

执行结果一次性发送

服务端来说,也是一次性发送所有的数据,不能因为你已经取到了想要的数据就中断操作,这个时候会对网络和内存产生大量消耗

#参考资料 1.https://mp.weixin.qq.com/s/PEk97JyIlUexuAjFr2pmiw

您可能感兴趣的文档:

--结束END--

本文标题: 1. select语句执行过程-网络通信

本文链接: https://lsjlt.com/news/7415.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 1. select语句执行过程-网络通信
    执行过程图 网络通信 MySQL 是支持多种通信协议的,可以使用同步/异步的方式,支持长连接/短连接。 1.同步/异步 异步的问题 异步可以避免应用阻塞等待,但是不能节省 SQL 执行的时间。 如果异步存在并发,每一个 SQL 的执行都...
    99+
    2015-06-19
    1. select语句执行过程-网络通信
  • 3. select语句执行过程-优化器
    1.有哪些 2.开启追踪 优化器追踪默认是关闭的 2.1 开启 SHOW VARIABLES LIKE "optimizer_trace"; set optimizer_trace="enabled=on"; 2.2 执行一个sql后...
    99+
    2019-02-28
    3. select语句执行过程-优化器
  • SQL语句的执行过程
    1.语法校验      如果在SQL计划缓存中没有对应的执行计划,服务器首先会对用户请求的SQL语句进行语法效验,如果有语法错误,服务器会结束查询操作,并用返回相应的错误信息给...
    99+
    2024-04-02
  • 一条SQL语句执行过程
    目录一、MySQL 体系架构- 连接池组件- 缓存组件- 分析器- 优化器- 执行器二、写操作执行过程三、读操作执行过程四、SQL执行顺序一、MySQL 体系架构 - 连接池组件 ...
    99+
    2024-04-02
  • Mysql查询语句执行过程 - G
    Mysql查询语句执行过程   Mysql分为server层和存储引擎两部分,或许可以再加一层连接层   连接层(器) Mysql使用的是典型的C/S架构。连接器通过典型的TCP握手完成连接。 需要注的是, 如果用户名和密码都正确...
    99+
    2021-12-15
    Mysql查询语句执行过程 - G
  • SQL查询语句执行的过程
    目录MySQL基本架构Server 层1、连接器2、查询缓存3、分析器4、优化器5、执行器SQL语句举例: SELECT * FROM `test` WHERE `i...
    99+
    2024-04-02
  • 2 select语句执行过程-缓存& 语法解析和预处理(Parser & Preprocessor)
    1.缓存 MySQL 的缓存默认是关闭的,8.0直接去掉了缓存模块 show variables like "query_cache%" 2.语法解析 从这个最简单的sql语句说起 select name from user_info w...
    99+
    2015-12-23
    2 select语句执行过程-缓存& 语法解析和预处理(Parser & Preprocessor)
  • MySQL执行一条查询语句的过程
      执行流程 如下图所示,我们可以看到当向 MySQL 发送一个请求时,MySQL 到底做了什么:   客户端发送一条査询给服务器。 服务器先检查査询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进人下一阶段。 服务器端进...
    99+
    2018-04-18
    MySQL执行一条查询语句的过程
  • 详解MySQL 查询语句的执行过程
    首先先简单的将一个查询语句背后MySQL做了什么捋一捋: 客户端发送一条查询给服务器。 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果。否则进入下一个阶段。 服务器端进行SQL解析,...
    99+
    2022-05-19
    MySQL 查询语句 MySQL 查询语句执行过程
  • Oracle数据库SQL语句的执行过程
    这篇文章主要讲解了“Oracle数据库SQL语句的执行过程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据库SQL语句的执行过程”吧!1、用户...
    99+
    2024-04-02
  • MyBatis的SQL语句执行过程是什么
    这篇文章主要介绍“MyBatis的SQL语句执行过程是什么”,在日常操作中,相信很多人在MyBatis的SQL语句执行过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MyBatis的SQL语句执行过程...
    99+
    2023-06-30
  • MySql中sql语句执行过程是什么
    今天小编给大家分享一下MySql中sql语句执行过程是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。sql语句的执行过程...
    99+
    2023-07-05
  • 深入理解:Mysql执行SQL语句过程
     开发人员基本都知道,我们的数据存在数据库中(目前最多的是mysql和oracle,由于作者更擅长mysql,所以这里默认数据库为mysql),服务器通过sql语句将查询数据的请求传入到mysql数据库。数据库拿到sql语句以后。...
    99+
    2023-06-02
  • java switch语句的执行过程是什么
    这篇文章主要介绍“java switch语句的执行过程是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java switch语句的执行过程是什么”文章能帮助大家解决问题。1、语法switch(常...
    99+
    2023-06-30
  • MySQL查询语句的执行过程有哪些
    本篇文章为大家展示了MySQL查询语句的执行过程有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。查询请求的执行流程众所周知在MySQL数据库应用中查询请求是使用...
    99+
    2024-04-02
  • SQL语句解析执行的过程及原理
    目录一、sqlSession简单介绍二、获得sqlSession对象源码分析三、SQL执行流程,以查询为例一、sqlSession简单介绍 拿到SqlSessionFactory对象...
    99+
    2024-04-02
  • java中switch语句的执行过程是什么
    今天就跟大家聊聊有关java中switch语句的执行过程是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java的特点有哪些Java的特点有哪些1.Java语言作为静态面向对象编...
    99+
    2023-06-14
  • MySQL查询语句的执行过程是什么
    这篇文章主要介绍MySQL查询语句的执行过程是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先先简单的将一个查询语句背后MySQL做了什么捋一捋:客户端发送一条查询给服务器。服务器先检查查询缓存,如果命中了缓存...
    99+
    2023-06-14
  • 一条SQL语句执行过程时怎样的
    本篇内容主要讲解“一条SQL语句执行过程时怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“一条SQL语句执行过程时怎样的”吧!一、MySQL 体系架构- 连接池组件负责与客户端的通信,是半双...
    99+
    2023-06-29
  • SQL查询语句执行的过程是什么
    这篇文章主要介绍“SQL查询语句执行的过程是什么”,在日常操作中,相信很多人在SQL查询语句执行的过程是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SQL查询语句执行的过程是什么”的疑惑有所帮助!接下来...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作