JavaWeb开发思维导图之——MySQL数据库锁机制(29)
一 概述
- 概念
- 操作
二 内容详情
2.1 概念
1-锁介绍
- 锁机制:数据库为了保证数据一致性,在共享资源并发访问时一种安全合计规范
- 锁机制类似于多线程中同步,作用就是保证数据一致性和安全性
2-分类
- 按操作分类:1-共享锁、2-排他锁
- 按粒度分类:1-表锁、2-行锁
- 按使用方式分类:1-悲观锁、2-乐观锁
3-存储引擎支持锁
- InnoDB:表锁/行锁
- MyISAM:表锁
- memory:表锁
2.2 操作
1-InnoDB共享锁
特点:数据可以被多个事务查询,不能修改
创建共享锁格式:select 语句 lock in share mode;
示例:select * from student where id=1 lock in share mode;
2-InnoDB排他锁
- 特点:加锁的数据,不能被其他事务加锁查询或修改
- 创建排他锁格式:select 语句 for update;
- 示例:select * from student wher id= for update;
3-MyISAM读锁
- 特点:所有连接只能查询数据,不能修改
- 读锁语法:1-加锁: lock table 表名 read;、2-解锁: unlock tables;
- 示例:lock table product read;
4-MyISAM写锁
- 特点:其他连接不能查询和修改数据、当期连接能查询和修改数据
- 写锁语法:1-加锁: lock table 表名 write;、2-解锁: unlock tables;
- 示例:lock table product write;
5-悲观锁和乐观锁
- 方式1:给数据表添加一列version
- 方式2:给数据表添加一列timestamp