开发者学堂课程【MySQL 高级应用 - 索引和锁:据库锁理论概述】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/598/detail/8630
据库锁理论概述
目录:
一、定义
二、锁的分类
一、定义
MySqI 锁机制,有利有弊,不加锁,会争抢引起浑沦;数据库需要进行数据的备份时,防止别人篡改数据,加上锁防止改动,一分为二的看待。
定义:锁是计算机协调多个通程成线程并发访问某一资源的机制,(防止争抢)在数据库中,除传统的计算楂源(如 CPU、RAM、I/O 等)的争用以外。数题也是一种供许多用户共享的蜜源。
如何保证数据并发访问的一政性,有效性是所有数想库必须鲜决的一个问图:情冲突也量响数轭库井发访问性能的一个重要国置。
从这个角哩来说精对数据库而言显得尤其重要,也更加复杂。
举例说明,我们到淘宝上买一件商品,商品只有一件库存,这个时候如果还有另一个人买,那么如何解决时你买到还是另一个人买到的问题?
这里肯定要用到事务,先从库存表中取出物品数量,然后插入订单,付款后插入付款表信息,更新商品数量。
在这个过程中,使用锁可以对有限的资源进行保护,解决隔离和并发的矛盾。
二、锁的分类:
从数据操作维度:读锁、写锁
从数据操作力度:表锁、行锁
读锁(共享锁):针对同一份数据,多个读操作可以同时进行而不会互相影响。
写锁(排它锁):当前写操作没有完成前,它会阻断其他写锁和读锁。
开锁、加锁速度、死锁、粒度、并发性能,只能就具体应用特点来说哪种锁更合适。