mysql通信协议的半双工机制理解
一、通信知识中的半双工概念
通信的方式分为:单工通信,半双工,全双工。
全双工的典型例子是:打电话。电话在接到声音的同时也会传递声音。在一个时刻,线路上允许两个方向上的数据传输。网卡也是双工模式。在接收数据(比如一直在下载东西)的同时,又发送
数据(比如请求网页)
半双工:在同一个时刻只能进行一个动作。在一个时刻,线路上只允许一个方向上的数据传输。
单工:典型例子就是电视遥控器。接收端和发送端已经固定了的。接收端只能接收数据。没有发送数据的功能。发送端只有发送的功能。没有接收的功能.特点是,线路上的数据流是永远是单
方向,固定方向。
这样理解的话,显示器与电脑主机之间的工作方式也是单工模式的。
问:是半双工还是双工,到底由什么决定的?是线路还是两个方向上的设备决定的?
双工的设备条件:这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线,传送数据信号。(可能还需要控制线和状态线,以及地线)。
看来,不仅仅是两端设备。还有线的方面,这根线有些不同。可以参照电话线,网线进行理解全双工的线。
半双工的两端的设备,也有接收器和发送器。不然怎么接收和发送数据。这怎么理解?
这样理解:半双工模式下,确实有接收器和发送器。这样两端都可以发送和接收数据。但不同的是:两个动作不能同时进行。要么是一端发数据,只有等到它发送完成后,你才能或发送或接收
。
半双工与全双工的区别就在于是否能够同时进行。两种方式所能进行的操作都是一样的。
现实中使用的以太网可以设置双工和半双工的模式下工作。
技术的趋势:随着技术的不断进步,半双工会逐渐退出历史舞台。
二、关于mysql客户端/服务器通信协议的半双工机制
1.不能截断和进行流程控制:我将球发过去了,能做就是等待结果。不能说,我觉得不妥,还需要中途截断,不发给对方。所以,已经发出去的东西,无法进行流程控制。你要做的就是发信
息和等待结果。其他的什么都不能做在等待结果的时候,你也不能说:我已经找到了需要的数据。服务器你停止发送剩下的数据吧。不管你是否需要,你只能等待服务器将所有数据包发送完
毕后丢掉不要的数据。或者,你就选择断掉连接。无法进行流程控制的。
所以,使用limit子句去控制服务器发送给客户端数据的量。这样可以提高性能。
这里limit对于性能的影响之处怎么理解?
如果没有limit进行限制的话,查询出所有的数据都会发送给客户端,比如我只需要10条。但是没有限制,假如取出了100条数据.就会发送到客户端100条数据。这其中其实有些是不需要的。
在这个过程中,客户端是无法说:我已经找到我需要的10条数据,剩下的90条数据服务器请不要再发送了。由于是半双工的通信机制,那么你要做的只能等待服务器发送的100条数据全部发送
完毕,你才能进行操作。所以没有limit进行限制后,是不是增加了客户端的等待时间。对性能有影响。
根据这种半双工的机制,一般这样做:客户端需要多少条数据,我就在服务器操作的时候使用limit进行限制只取出多少条,那么只会发送需要的条数给客户端。
mysql通信协议的半双工机制理解的更多相关文章
- 巧用MySQL InnoDB引擎锁机制解决死锁问题(转)
该文会通过一个实际例子中的死锁问题的解决过程,进一步解释innodb的行锁机制 最近,在项目开发过程中,碰到了数据库死锁问题,在解决问题的过程中,笔者对MySQL InnoDB引擎锁机制的理解逐步加深 ...
- MySQL多版本并发控制机制(MVCC)-源码浅析
MySQL多版本并发控制机制(MVCC)-源码浅析 前言 作为一个数据库爱好者,自己动手写过简单的SQL解析器以及存储引擎,但感觉还是不够过瘾.<<事务处理-概念与技术>>诚然 ...
- 从新浪微博和MySQL的password保护机制谈HTTPS/SSL的必要性
尽管业界已经达成共识,在传输用户password等须要保密的信息时,尽可能採用HTTPS/SSL协议传输. 但我们还是能够看到少数没实用HTTPS/SSL加密的站点或应用. 新浪微博的登录页面和MyS ...
- Mysql 的字符编码机制、中文乱码问题及解决方案【转载】
本文转载自:http://hi.baidu.com/huabinyin/item/7f51e462df565c97c4d24929.感谢作者及相关博主. 相信很多朋友都会对字符编码敬而远 ...
- android的事件分发机制理解
android的事件分发机制理解 1.事件触发主要涉及到哪些层面的哪些函数(个人理解的顺序,可能在某一层会一次回调其它函数) activity中的dispatchTouchEvent .layout中 ...
- ECshop中的session机制理解
ECshop中的session机制理解 在网上找了发现都是来之一人之手,也没有用自己的话去解释,这里我就抛砖引玉,发表一下自己的意见,还希望能得到各界人士的指导批评! 此session机制不需 ...
- MySQL的innoDB锁机制以及死锁处理
MySQL的nnoDB锁机制 InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION):二是采用了行级锁.行级锁与表级锁本来就有许多不同之处,innodb正常的select ...
- Java ClassLoader加载机制理解 实际例子
针对 Java ClassLoader加载机制理解, 做了个如何自定制简单的ClassLoader,并成功加载指定的类. 不废话,直接上代码. package com.chq.study.cl; im ...
- Java ClassLoader加载机制理解
今天看到了一篇介绍Java ClassLoader加载机器的文章, 才发觉一直来自己的肤浅, 好好地给补了一课, 不得不存档! 原文地址: http://www.blogjava.net/lhulcn ...
随机推荐
- rhel5.4+oracle 10g rac
各种报错各种愁啊 ... 1> 不知道什么原因,在节点2执行root.sh 报错 .无解 . 还原虚拟机,重新安装 .唯一与以前不同的是,执行orainroot.sh后 接着在节点2执行.再去分 ...
- Mac-控制台更新svn版本
brew install subversion 直接安装svbversion至最新版本
- FileZilla_server在Windows和Linnx下的部署安装
1. FileZilla官网下载FileZilla Server服务器,目前最新版本为0.9.53. 2. 安装FileZilla服务器.除以下声明的地方外,其它均采用默认模式,如安装路径等. 2.1 ...
- java数据库编程(未整理完,待续)
java使用数据库可以借助jdbc这个中间媒介.本文将介绍如何使用jdbc连接数据库,数据库的基本操作和jdbc的事物处理. 1 连接数据库 一般java连接数据库,都有几个步骤: 0.导入相应的驱动 ...
- AngularJS 服务 provider factory service及区别
一.概念说明 1.服务是对公共代码的抽象,如多个控制器都出现了相似代码,把他们抽取出来,封装成一个服务,遵循DRY原则,增强可维护性,剥离了和具体表现相关的部分,聚焦于业务逻辑或交互逻辑,更加容易被测 ...
- spring security文档地址
https://docs.spring.io/spring-security/site/docs/4.1.0.RELEASE/reference/htmlsingle/
- Swift3 使用系统UIAlertView方法做吐司效果
/** *显示弹出信息 */ class func showAlertMessage(_ str:String,showtime Num:Double){ let alert = UIAlertVie ...
- 如何获取 docker 容器(container)的 ip 地址
1. 进入容器内部后 cat /etc/hosts 会显示自己以及(– link)软连接的容器IP 2.使用命令 docker inspect --format '{{ .NetworkSetting ...
- ASP.NET MVC 主要的四种过滤器和三种具体实现类
4种常用过滤器(IAuthrorizationFilter.IActionFilter.IResultFilter.IExceptionFilter) 和 3种具体实现类(AuthorizeAttri ...
- “全栈2019”Java多线程第二十八章:公平锁与非公平锁详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...