--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ;SELECT * FROM v$locked_object;SELECT * FROM al ...
分类:
数据库 时间:
2019-03-19 01:05:20
阅读次数:
237
--锁表(其它事务不能读、更新、删除) BEGIN TRAN SELECT * FROM WITH(TABLOCKX); WAITFOR delay '00:00:20' COMMIT TRAN --锁表(其它事务只能读,不能更新、删除) BEGIN TRAN SELECT * FROM WITH(... ...
分类:
其他好文 时间:
2019-03-14 16:47:02
阅读次数:
187
悲观锁 总是架设最坏的请款,每次拿数据都认为别人会修改数据,所以要加锁,别人只能等待,直到我释放锁才能拿到锁;数据库的行锁、表锁、读锁、写锁都是这种方式,java中的synchronized和ReentrantLock也是悲观锁的思想。 乐观锁 总是架设最好的情况,每次拿数据都认为别人不会修改数据, ...
分类:
其他好文 时间:
2019-03-12 14:17:13
阅读次数:
189
mysql主从经常会出现主从数据不同步的问题,脏数据会造成主从同步中断,出现大量ERROR,如1032,1062等错误。常规方法是逐条删除脏数据或者重做库,由于数据量大操作麻烦,而且主库在线上运行不能有锁表操作,各种不便特别费时间。笔者在生产环境遭遇了一次,情急之下用粗暴的方法不到10分种解决问题。下面假设一种情况,主库正常,从库数据不一致,解决思路步骤如下:1,对故障定性,通过查看最近日志来找出
分类:
数据库 时间:
2019-03-09 12:54:24
阅读次数:
214
1、查询是否锁表show OPEN TABLES where In_use > 0; 2、查询进程 show processlist 查询到相对应的进程 然后 kill id 补充:查看正在锁的事务SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS; 查看等待 ...
分类:
数据库 时间:
2019-03-08 22:10:01
阅读次数:
612
悲观锁 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做 ...
分类:
其他好文 时间:
2019-03-02 18:27:39
阅读次数:
169
锁的分类: 1.从粒度来分:表锁和行锁。 2.从类型来分:读锁和写锁。 表锁 偏向MyISAM存储引擎,加锁快,开销小,并发程度最低。 当事务1对表A上了读锁,事务1再想去select同数据库下的其他表就不给查了。事务2此时要修改表A,就阻塞了。 当事务1对表A上了写锁,再想去查找同数据库下其他的表 ...
分类:
数据库 时间:
2019-02-27 20:38:24
阅读次数:
224
根据加锁的范围,MySQL的锁可以分为全局锁,表级锁和行锁。 1. 全局锁 MySQL提供了一个加全局读锁的方法,命令是:Flush tables with read lock(FTWRL),执行该命令以下语句会被阻塞:数据更新语句,数据定义语句和更新事务的提交语句。 1.1 使用场景 全局逻辑备份 ...
分类:
数据库 时间:
2019-02-26 23:36:53
阅读次数:
258
## ##在MySQL 5.6.7版本前,DDL操作主要有copy和inplace两种方式,两种方式全程都需要锁表禁止写操作,允许部分时间段的读操作。copy方式: (1)新建带索引的临时表 (2)锁原表,禁止DML,允许查询 (3)将原表数据拷贝到临时表(无排序,一行一行拷贝) (4)进行rena ...
分类:
数据库 时间:
2019-02-17 12:30:58
阅读次数:
193