Mysql锁-表级别锁

发布于:2019-2-18 22:51 作者:losetowin 浏览:1216 分类:技术

表级别锁

表级别锁包含两种: 表锁和元数据锁


表锁

  • 命令:

    • 客户端和服务端断开时,服务端也会主动释放锁

    • lock table 除了限制其他线程的读写外,本身线程接下来的操作对象读写也受限制

    • 例子:

    • 线程A 执行 lock table t1 read, t2 write 时,线程B无法对t1写...

阅读全文>>

标签: mysql

0

Mysql锁-行锁

发布于:2019-2-18 22:50 作者:losetowin 浏览:1067 分类:技术

行锁

在引擎层由各个引擎自己实现

MyISAM不支持行锁,InnoDB支持行锁

  • 不支持行锁,意味着并发控制只能使用表锁,即同一时刻,同一张表只能有一个线程在更新,其余的操作需要等待。会严重影响到业务的并发度

概念: 针对数据表中的行记录的锁

两阶段锁协议

  • 在InnoDB事务中,行锁是在需要的时候才加上。 但并不是不需要的时候就释放,而是在...

阅读全文>>

标签: mysql

0

Mysql锁-全局锁

发布于:2019-2-16 16:14 作者:losetowin 浏览:1096 分类:技术

mysql锁

Mysql包含 全局锁, 表级锁, 行级锁三种

全局锁

介绍

全局锁就是对整个数据库实例加锁。

使用 命令 Flush tables with read lock (FTWRL)来对数据库实例加全局锁。

加全局锁之后会怎样?
  • 使用FTWRL命令后,下列操作将被堵塞:
    • 数据更新语句(数据的增删改...

阅读全文>>

标签: mysql

0

锁的公平和非公平

发布于:2016-11-20 20:39 作者:losetowin 浏览:4121 分类:Java
简单介绍

在锁的获取上,存在一个公平性和不公平性的问题,所谓的公平是指,在一段时间内,先对锁发起获取请求的一定被先满足。或者可以理解成期望获取锁的线程是一个先进先出的队列,等待时间最久的线程最优先获取到锁。而非公平是指,获取锁的顺序并不是有序的,可以随时插队。就好比都在排队检票,突然来了一个人说他的火车马上就要开车了,想插在你前面检票进站,这时候你就有可能仁慈了,把位置让他插入了。 这时...

阅读全文>>