mysql通信协议的半双工机制理解

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 一、通信知识中的半双工概念通信的方式分为:单工通信,半双工,全双工。全双工的典型例子是:打电话。电话在接到声音的同时也会传递声音。在一个时刻,线路上允许两个方向上的数据传输。网卡也是双工模式。在接收数据(比如一直在下载东西)的同时,又发送数据(比如请求网页)半双工:在同一个时刻只能进行一个动作。


一、通信知识中的半双工概念

通信的方式分为:单工通信,半双工,全双工。

全双工的典型例子是:打电话。电话在接到声音的同时也会传递声音。在一个时刻,线路上允许两个方向上的数据传输。网卡也是双工模式。在接收数据(比如一直在下载东西)的同时,又发送

数据(比如请求网页)

半双工:在同一个时刻只能进行一个动作。在一个时刻,线路上只允许一个方向上的数据传输。


单工:典型例子就是电视遥控器。接收端和发送端已经固定了的。接收端只能接收数据。没有发送数据的功能。发送端只有发送的功能。没有接收的功能.特点是,线路上的数据流是永远是单

方向,固定方向。
这样理解的话,显示器与电脑主机之间的工作方式也是单工模式的。








问:是半双工还是双工,到底由什么决定的?是线路还是两个方向上的设备决定的?

双工的设备条件:这种方式要求通讯双方均有发送器和接收器,同时,需要2根数据线,传送数据信号。(可能还需要控制线和状态线,以及地线)。

看来,不仅仅是两端设备。还有线的方面,这根线有些不同。可以参照电话线,网线进行理解全双工的线。




半双工的两端的设备,也有接收器和发送器。不然怎么接收和发送数据。这怎么理解?
这样理解:半双工模式下,确实有接收器和发送器。这样两端都可以发送和接收数据。但不同的是:两个动作不能同时进行。要么是一端发数据,只有等到它发送完成后,你才能或发送或接收



半双工与全双工的区别就在于是否能够同时进行。两种方式所能进行的操作都是一样的。


现实中使用的以太网可以设置双工和半双工的模式下工作。


技术的趋势:随着技术的不断进步,半双工会逐渐退出历史舞台。






二、关于mysql客户端/服务器通信协议的半双工机制

1.不能截断和进行流程控制:我将球发过去了,能做就是等待结果。不能说,我觉得不妥,还需要中途截断,不发给对方。所以,已经发出去的东西,无法进行流程控制。你要做的就是发信

息和等待结果。其他的什么都不能做在等待结果的时候,你也不能说:我已经找到了需要的数据。服务器你停止发送剩下的数据吧。不管你是否需要,你只能等待服务器将所有数据包发送完

毕后丢掉不要的数据。或者,你就选择断掉连接。无法进行流程控制的。

所以,使用limit子句去控制服务器发送给客户端数据的量。这样可以提高性能。

这里limit对于性能的影响之处怎么理解?

如果没有limit进行限制的话,查询出所有的数据都会发送给客户端,比如我只需要10条。但是没有限制,假如取出了100条数据.就会发送到客户端100条数据。这其中其实有些是不需要的。
在这个过程中,客户端是无法说:我已经找到我需要的10条数据,剩下的90条数据服务器请不要再发送了。由于是半双工的通信机制,那么你要做的只能等待服务器发送的100条数据全部发送

完毕,你才能进行操作。所以没有limit进行限制后,是不是增加了客户端的等待时间。对性能有影响。

根据这种半双工的机制,一般这样做:客户端需要多少条数据,我就在服务器操作的时候使用limit进行限制只取出多少条,那么只会发送需要的条数给客户端。



相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
存储 关系型数据库 MySQL
MySQL MVCC全面解读:掌握并发控制的核心机制
【10月更文挑战第15天】 在数据库管理系统中,MySQL的InnoDB存储引擎采用了一种称为MVCC(Multi-Version Concurrency Control,多版本并发控制)的技术来处理事务的并发访问。MVCC不仅提高了数据库的并发性能,还保证了事务的隔离性。本文将深入探讨MySQL中的MVCC机制,为你在面试中遇到的相关问题提供全面的解答。
889 2
|
缓存 关系型数据库 MySQL
MySQL并发支撑底层Buffer Pool机制详解
【10月更文挑战第18天】在数据库系统中,磁盘IO操作是性能瓶颈之一。为了提高数据访问速度,减少磁盘IO,MySQL引入了缓存机制。其中,Buffer Pool是InnoDB存储引擎中用于缓存磁盘上的数据页和索引页的内存区域。通过缓存频繁访问的数据和索引,Buffer Pool能够显著提高数据库的读写性能。
551 2
|
canal 消息中间件 关系型数据库
Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
【9月更文挑战第1天】Canal作为一款高效、可靠的数据同步工具,凭借其基于MySQL binlog的增量同步机制,在数据同步领域展现了强大的应用价值
1772 4
|
存储 SQL 关系型数据库
|
存储 关系型数据库 MySQL
优化 MySQL 的锁机制以提高并发性能
【10月更文挑战第16天】优化 MySQL 锁机制需要综合考虑多个因素,根据具体的应用场景和需求进行针对性的调整。通过不断地优化和改进,可以提高数据库的并发性能,提升系统的整体效率。
708 1
|
监控 关系型数据库 MySQL
MySQL锁机制与解决死锁问题
MySQL锁机制与解决死锁问题
626 5
|
存储 关系型数据库 MySQL
深入解析MySQL数据存储机制:从表结构到物理存储
深入解析MySQL数据存储机制:从表结构到物理存储
1505 1
|
存储 SQL 关系型数据库
深入解析MySQL事务机制和锁机制
深入解析MySQL事务机制和锁机制
|
存储 SQL 关系型数据库
深入MySQL锁机制:原理、死锁解决及Java防范技巧
深入MySQL锁机制:原理、死锁解决及Java防范技巧
|
存储 SQL 关系型数据库
MySQL中的update操作与锁机制
本文探讨MySQL中`UPDATE`操作的自动加锁机制及其对数据一致性的保障作用。尤其在InnoDB存储引擎下,系统会在涉及索引的更新操作中加行锁或间隙锁,防止多事务并发修改同一条记录。通过福利码兑换系统的实例展示,当线程A开启事务更新库存时,线程B试图更新相同记录会被阻塞,直至线程A提交。此外,文章还介绍了乐观锁及版本号控制等策略进一步提升并发性能的方法。作者:小明爱吃火锅,来源:稀土掘金。
710 2

推荐镜像

更多