一、锁的定义 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除了传统的计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供需要用户共 享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度 ...
分类:
数据库 时间:
2020-05-23 19:59:51
阅读次数:
58
1. 查看表锁命令 In_use为0 ,表示没有锁表 2. 锁表 2.1 给表上读锁 2.2 给表上写锁 2.3 释放锁 3. 测试 3.1创建表tb_a. tb_b 3.2 添加数据 3.3 session1 给tb_a上读锁 session1 会话 可以读 tb_a session1 会话 不可 ...
分类:
数据库 时间:
2020-05-12 23:14:33
阅读次数:
117
相关概念 粒度:锁的作用范围 表级 行级 显示锁 隐式锁 表级锁的类型 读锁(read lock) 也称为共享锁(Share Locks,S锁),多个事务可以同时拥有共享锁;但是不能再获取排它锁。 读锁允许其它MySQL客户机对数据同时“读”,但不允许其它MySQL客户机对数据任何“写”。 写锁(w ...
分类:
数据库 时间:
2020-05-07 10:45:10
阅读次数:
81
MySQL InnoDB事务的隔离级别有四级,默认是“可重复读”(REPEATABLE READ)。 未提交读(READ UNCOMMITTED)。另一个事务修改了数据,但尚未提交,而本事务中的SELECT会读到这些未被提交的数据(脏读)。 提交读(READ COMMITTED)。本事务读取到的是最 ...
分类:
数据库 时间:
2020-05-04 00:44:06
阅读次数:
91
显示锁的应用场景: 1.ReadWriteLock 读写分离:可以有效地减少锁竞争,以提升系统性能 2.中断锁,超时锁 Lock读写分离 读写分离简介: 1.读写锁:在同一时刻允许多个读线程访问,但是当写线程访问,所有的写线程和读线程均被阻塞。读写锁维护了一个读锁加一个写锁,通过读写锁分离的模式来保 ...
分类:
其他好文 时间:
2020-05-03 12:43:34
阅读次数:
70
1.安装percona xtrabackup 下载地址为http://www.percona.com/downloads/XtraBackup/ 1)服务器搭建本地yum源; 2)yum y install perl perl devel libaio libaio devel perl Time ...
分类:
其他好文 时间:
2020-04-26 10:54:17
阅读次数:
61
悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每 次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传 统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写 锁等,都是在做操作之前先上锁。再比如 Java 里面的同步原语 synchroniz ...
分类:
其他好文 时间:
2020-04-25 00:42:12
阅读次数:
181
1.先以一段代码为例 ReadWriteLock rwLock = new ReentrantReadWriteLock(); // rwLock.readLock()是获取rwLock里的一个属性而非new // 这句代码的意思是给rwLock加读锁,而不应该理解为给rwLock.readLock ...
分类:
其他好文 时间:
2020-04-21 16:51:23
阅读次数:
66
锁 根据加锁的范围,MySQL ??的锁?致可以分成全局锁、表级锁和?锁三类 全局锁 全局锁就是对整个数据库实例加锁。MySQL 提供了?个加全局读锁的?法,命令是Flush tables with read lock (FTWRL)。让整个库处于只读状态。全局锁的典型使?场景是,做全库逻辑备份。也 ...
分类:
数据库 时间:
2020-04-01 11:06:55
阅读次数:
81
锁的分类 读锁和写锁,表锁和行锁 表锁 偏向MyISAM存储引擎,开销小,加锁快,无死锁。发生锁冲突的概率最高,并发度最低。 读锁 会话1对表1加了读锁后,可以查询表1,不能更新表1,也不能查询别的表。与此同时会话2可以查询表1,更新表1会阻塞,等待读锁的释放。 写锁 会话1对表1加了写锁后,可以查 ...
分类:
数据库 时间:
2020-03-29 17:58:44
阅读次数:
95