不管是数据库,还是很多后端编程语言,都存在锁的机制,锁的存在有效解决了并发情况下对共同资源的抢占,保证了数据的稳定性和一致性,在mysql中,锁是如何工作的呢?其底层的工作原理是怎样的呢?本篇将详细介绍下mysql锁的机制。文章源自玩技e族-https://www.playezu.com/749060.html
mysql锁介绍文章源自玩技e族-https://www.playezu.com/749060.html
在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。文章源自玩技e族-https://www.playezu.com/749060.html
MySQL中,按照锁的粒度,可分为以下三类:文章源自玩技e族-https://www.playezu.com/749060.html
- 全局锁:锁定某个数据库的所有表;
- 表级锁:每次操作锁住整张表;
- 行级锁:每次操作锁住对应的行数据;
当然,关于锁的分类,还可以有其他的不同的维度,下面列出了一个更为详细的划分文章源自玩技e族-https://www.playezu.com/749060.html
文章源自玩技e族-https://www.playezu.com/749060.html
从操作类型上来看,mysql的锁可以直接划分为:读锁和写锁;文章源自玩技e族-https://www.playezu.com/749060.html
- 读锁 :也称共享锁 、英文用 S 表示。针对同一份数据,多个事务的读操作可以同时进行而不会互相影响,相互不阻塞的;