1、内连接 有两个表,学生表student,班级表:class 班级表class: ? 学生表student: ?...内连接: select * from class INNER JOIN student on class.id=student.classId ?...2、连续两次使用同一张表 有两张表:material原料表,单位表unit: material表: pUnit为采购单位,sUnit为库存单位 ? 单位表unit: ?...在这里,查询material的信息时,我们需要两次关联单位表unit select *from material m INNER JOIN unit u on m.pUnit=u.id INNER...3、自连接,自关联 在做城市表的时候,城市和省份用的自关联,查询出城市且查出该城市所属的省份 表city: ?
它可以轻松连接到运行SSH守护程序的任何服务器,因此您可以像登录到远程系统上的控制台会话一样工作。 安装PuTTY并连接到远程主机 从此处下载并运行PuTTY安装程序。...将上面步骤4的输出与PuTTY在步骤3中的警报消息中显示的内容进行比较。两个指纹应该匹配。 如果指纹匹配,则在PuTTY消息上单击是以连接到您的Linode并缓存该主机指纹。...如果您应该从已经缓存主机密钥的系统中再次收到此警告,则您不应该信任该连接并进一步调查问题。 使用PuTTY进行端口转发(SSH隧道) SSH隧道允许您通过安全通道访问在远程服务器上运行的网络服务。...例如,您可以使用隧道来安全地访问在远程服务器上运行的MySQL服务器。 为此: 在PuTTY的配置窗口中,转到“ 连接”类别。 转到SSH,然后转到隧道。 在源端口字段中输入3306。...您与远程MySQL服务器的连接将通过SSH加密,允许您访问数据库而无需在公共IP上运行MySQL。 通过SSH运行远程图形应用程序 PuTTY可以安全地运行托管在远程Linux服务器上的图形应用程序。
前段时间我网站的加密证书到期了,刚好趁着这个时间教一下大家如何给自己的网站添加SSL 证书 如果你的网站不加密,访问的时候就会像下面这样,显示“您的连接不是私密连接”,当然你可以点击隐藏详情,然后再访问...注意:本文以CentOS 8操作系统、Nginx 1.14.1服务器系统为例进行说明。由于服务器系统版本不同,您在操作过程中使用的命令可能会略有区别。...步骤一:下载证书到本地 解压后您将会获得以下文件: 注意:本文中出现证书文件名称的地方,统一使用以下为例进行描述。...步骤二:在Nginx服务器上安装证书 在Nginx独立服务器、Nginx虚拟主机上安装证书的具体操作不同,请根据您的实际环境,选择对应的安装步骤。...在Nginx独立服务器上安装证书 1.登录Nginx服务器。
如A事务对一条数据进行了修改,但是事务还没提交,此时B事务读到了A事务修改了但是未提交的数据,这就是脏读。 2、不可重复读(Non-repeatable read) 是指在一个事务内,多次读同一数据。...在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两 次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。...这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不 可重复读。 3、幻读(Phantom Read) 所谓幻读是指同一个事务内多次查询返回的结果集不一样(比如增加了或者减少了行记录)。...比如同一个事务A内第一次查询时候有n条记录,但是第二次同等条件下查询却又n+1条记录,这就好像产生了幻觉,为啥两次结果不一样那。...简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。
内连接和外连接区别? 在MySQL中,内连接(Inner Join)和外连接(Outer Join)是用于联接(Join)多个表的操作。 内连接是通过匹配两个表之间的共同值,返回满足连接条件的行。...只有在两个表中都存在匹配的行时,才会返回结果。内连接可以使用关键字JOIN或INNER JOIN来表示。 外连接是根据连接条件返回满足条件的行,并且包括未匹配的行。...全外连接返回左表和右表中所有的行,如果没有匹配的行,则返回NULL值。 总结区别: 内连接只返回两个表中匹配的行,而外连接返回匹配的行以及未匹配的行。...两次握手无法阻止历史连接 可以看到,如果采用两次握手建立 TCP 连接的场景下,服务端在向客户端发送数据前,并没有阻止掉历史连接,导致服务端建立了一个历史连接,又白白发送了数据,妥妥地浪费了服务端的资源...不使用「两次握手」和「四次握手」的原因: 「两次握手」:无法防止历史连接的建立,会造成双方资源的浪费,也无法可靠的同步双方序列号; 「四次握手」:三次握手就已经理论上最少可靠连接建立,所以不需要使用更多的通信次数
事务开始于: 连接到数据库上,并执行一条DML语句insert、update或delete 前一个事务结束后,又输入了另一条DML语句 事务结束于 执行commit或rollback语句。...Repeatable Read(可重读) 这是MySQL的默认事务隔离级别,它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。...简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。 这四种隔离级别采取不同的锁类型来实现,若读取的是同一个数据的话,就容易发生问题。...不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。 ...经过上面的实验可以得出结论,已提交读隔离级别解决了脏读的问题,但是出现了不可重复读的问题,即事务A在两次查询的数据不一致,因为在两次查询之间事务B更新了一条数据。
Non Repeatable Read(不可重复读):是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。...那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。...(即不能读到相同的数据内容) Phantom Read(幻读):是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。...同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象 发生了幻觉一样。...,即第二次其实是没有真正修改数据库数据的,此时可以对操作的数据行查询 场次安排不使用事务和使用TransactionScope的Read Committed进行对比 不使用事务如下: using
// SQL92 select * from t1,t2 where t1.id = t2.t1_id // SQL99 select * from t1 NATURAL JOIN t2 实际上,在...左外连接,就是指左边的表是主表,需要显示左边表的全部行,而右侧的表是从表。...= t2.name 全外连接 全外连接也就是当表之间有匹配的行,会显示内连接的结果。...自连接 自连接是指在同一表中进行的连接操作。自连接通常涉及到使用别名,因为需要对同一表进行两次或多次引用。自连接可以用于在一个表中根据某些条件查找与其他记录有关系的记录。...自连接可以对多个表进行操作,也可以对同一个表进行操作。也就是说查询条件使用了当前表的字段。
问题是,在同一个事务里,前后两次相同的SELECT会读到不同的结果(不重复读)。会出现不可重复读、幻读问题(锁定正在读取的行) 3).可重复读(REPEATABLEREAD)。...在同一个事务里,SELECT的结果是事务开始时时间点的状态,因此,同样的SELECT操作读到的结果会是一致的。但是,会有幻读现象(稍后解释)。会出幻读(锁定所读取的所有行)。...不可重复读 是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,第二个事务已经提交。...那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。...幻读 : 是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。
行级锁,锁定数据行,行级锁只在存储引擎层实现。...该级别保证了在同一事务中多次读取同样的记录结果是一致的。...但是无法解决幻读的问题,所谓幻读,指的是当某个事务再读取某个范围内的记录时,另外一个事务又在该范围内插入了新的记录,当之前的事务再次读取该范围内的记录时,发现多了一行,会产生幻行。...简单来说,SERIALIZABLE会在读取的每一行数据上都加锁,所以可能导致大量的超时和锁争用的问题。...间隙锁使得InnoDB不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定,以防止幻行的插入。
不可重复读(Unrepeatableread):指一个事务多次读取1同一个数据,在这个事务还没有结束时,另一个事务也访问了该数据,那么在第一个事务中两次读取数据之间,由于第二个事务的修改导致了第一个事务两次读取的数据的值可能不太一样...,这样就发生了一个事务内两次读到的1数据时不一样的情况。...delete语句执行的过程时每次从表中删除一行,需要记录日志,比较慢。 MySQL执行查询的过程 客户端通过TCP连接发送请求到MySQL连接器,连接器会对该请求进行权限验证和连接资源分配。...间隙锁的目的是为了防止同一事务的两次当前读出现幻读的情况,同时也是为了让其他事务无法在间隙中新增数据。...读锁(共享锁、Shared Locks、S锁):针对同一份数据,多个读操作可以同时进行而不会互相1影响。
一个事务是一个连续的一组数据库操作,就好像它是一个单一的工作单元进行。换言之,永远不会是完整的事务,除非该组内的每个单独的操作是成功的。如果在事务的任何操作失败,则整个事务将失败。...问题:两次查询结果不一致,也就是不可重复读问题。 ? Repeatable Read(可重读)-MySQL的默认事务隔离级别 它确保同一事务的多个实例在并发读取数据时,会看到同样的数据行。...保证了在同一事务中多次读取结果是一致的。但会引起另外一个幻读问题,当某个事务在读取某个范围记录时,另外一个事务在该范围插入和新记录,当之前事务再次读取该范围记录时会产生幻行。...简言之,它是在每个读的数据行上加上共享锁。在这个级别,可能导致大量的超时现象和锁竞争。...不可重复读(Non-repeatable read):在一个事务的两次查询之中数据不一致,这可能是两次查询过程中间插入了一个事务更新的原有的数据。
2.不可重复读(两次读的不一致) 指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。...那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。...例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。...如果只有在作者全部完成编写后编辑人员才可以读取文档,则可以避免该问题。 3.幻读 指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。...5.第二类更新丢失(覆盖丢失) 第二类更新丢失实在实际应用中经常遇到的并发问题,他和不可重复读本质上是同一类并发问题,通常他被看做不可重复读的特例:当2个或这个多个事务查询同样的记录然后各自基于最初的查询结果更新该行时
共享锁也称为读锁,相互不阻塞,多个客户在同一时刻可以同时读取同一个资源而不相互干扰。...其目的是为了防止同一事物的两次当前读出现幻读的情况。 (1)防止间隙内有新数据被插入。 (2)防止已存在的数据,更新成间隙内的数 Next-key Lock: 行锁+gap锁。...不可重复读:在同一事务中,使用相同的查询语句,同一数据资源莫名改变了。就是在两次查询的中间,数据发生了变动。...串行化: 对于同一行记录进行读写会分别加读写锁,当发生读写锁冲突,后面执行的事务需等前面执行的事务完成才能继续执行。 什么是MVCC? 简称多版本并发控制。即同一条记录在系统中存在多个版本。...从库将主库的binlog复制到对应的中继日志,即开辟一个I/O工作线程,I/O线程在主库上打开一个普通的连接,然后开始binlog dump process,将这些事件写入中继日志。
Apache配置参数详解 (1)keepAlive On/Off keepAlive 指的是保持连接活跃,换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不需要再一次连接,避免每次请求都要新建一个连接而加重服务器的负担...它的设置一般考虑图片或者JS等文件两次请求间隔,一般设置为3-5秒。 (3)MaxKeepAliveRequests 100 一次连接可以进行的HTTP请求的最大请求次数。...将其值设为0将支持在一次连接内进行无限次的传输请求。 事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。...(4)HostnameLookups on|off|double 如果是使用on,那么只有进行一次反查,如果用double,那么进行反查之后还要进行一次正向解析,只有两次的结果互相符合 才行,而off就是不进行域名验证...只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。
场景上,比如火车票订票,在屏幕上显示余票,而真正进行出票时,需要重新确定一下这个数据没有被其他客户端修改。所以,在这个确认过程中,可以使用for update。...此外,如果A与B都对表id进行查询但查询不到记录,则A与B在查询上不会进行row锁,但A与B都会获取排它锁,此时A再插入一条记录的话则会因为B已经有锁而处于等待中,此时B再插入一条同样的数据则会抛出Deadlock...3.不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。...那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。...例如,一个编辑人员两次读取同一文档,但在两次读取之间,作者重写了该文档。当编辑人员第二次读取文档时,文档已更改。原始读取不可重复。
p564445 ,若是登录本地的,【】内的可以不写。...最后,事务B读取到的张三工资为8000的数据即为脏数据,事务B做了一次脏读 不可重复读 在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。...那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的。...这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读 在事务A中,读取到张三的工资为5000,操作没有完成,事务还没提交。与此同时,事务B把张三的工资改为8000,并提交了事务。...在一个事务中前后两次读取的结果并不致,导致了不可重复读 幻读 当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。
inner join 交集 inner 内连接 outer join 差集 outer 外连接 自连接 当table1和table2本质上是同一张表,只是用取别名的方式虚拟成两张表以代表不同的意义...然后两个表再进行内连接,外连接等查询 SELECT emp.ename,mgr.ename FROM t_employee AS emp, t_employee AS mgr WHERE emp.mid...这个小点容易被忽视,如果第一行显示为li4,会错认为查询结果正确,导致不可估量的后果。 Mysql执行顺序 ? 在第一次查询后,会将结果缓存至本地缓存,两次查询结果时间不一致。...一致性(Consistency):指数据的规则,在事务前/后应保持一致。 隔离性(Isolation):简单点说,某个事务的操作对其他事务不可见的....隔离级别 1.读未提交 2.读已提交(Mysql默认级别) 3.可重复读 4.串行化 脏读:已经更新 但未提交 不可重复读:两次读取结果不一致 幻读:读的同事另一个事务进行了写操作,导致两次查询结果不一致
Phantom Problem:幻读问题,指在同一事务下,连续执行两次同样的 SQL 语句可能导致不同的结果,第二次的 SQL 语句可能会返回之前不存在的行。 1....Non-Repeatable Read 不可重复读:一个事务内多次读取同一数据集合,可能两次读到的数据是不一样的。...Phantom Problem 幻读 :幻读问题,指在同一事务下,连续执行两次同样的 SQL 语句可能导致不同的结果,第二次的 SQL 语句可能会返回之前不存在的行。...第一类更新丢失,回滚覆盖:撤消一个事务时,在该事务内的写操作要回滚,把其它已提交的事务写入的数据覆盖了。 b....首先得解释下这个 bug,在 master 上执行的顺序为先删后插,若此时 binlog 为 statement 格式,它记录的顺序为先插后删,slave 同步的是 binglog,因此 slave 执行的顺序和主机不一致
领取专属 10元无门槛券
手把手带您无忧上云