数据库锁
2015-06-22 21:34
288 查看
按照功能分类:
共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。
按照范围分类:
页级:引擎 BDB。
表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行
行级:引擎 INNODB , 单独的一行记录加锁
表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许
行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。
页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。
共享(S)锁:多个事务可封锁一个共享页;任何事务都不能修改该页; 通常是该页被读取完毕,S锁立即被释放。
排它(X)锁:仅允许一个事务封锁此页;其他任何事务必须等到X锁被释放才能对该页进行访问;X锁一直到事务结束才能被释放。
更新(U)锁:用来预定要对此页施加X锁,它允许其他事务读,但不允许再施加U锁或X锁;当被读取的页将要被更新时,则升级为X锁;U锁一直到事务结束时才能被释放。
按照范围分类:
页级:引擎 BDB。
表级:引擎 MyISAM , 理解为锁住整个表,可以同时读,写不行
行级:引擎 INNODB , 单独的一行记录加锁
表级,直接锁定整张表,在你锁定期间,其它进程无法对该表进行写操作。如果你是写锁,则其它进程则读也不允许
行级,,仅对指定的记录进行加锁,这样其它进程还是可以对同一个表中的其它记录进行操作。
页级,表级锁速度快,但冲突多,行级冲突少,但速度慢。所以取了折衷的页级,一次锁定相邻的一组记录。
相关文章推荐
- mysql缓存机制
- Ubuntu 安装 Redis
- oracle 数据类型详解---日期型
- mysql命令行,多行命令时如何取消/返回修改前边的命令
- 关于SQL SERVER的N前缀的理解
- t-sql/mssql用命令行导入数据脚本的SQL语句示例
- sql cast,convert,QUOTENAME,exec 函数学习记录
- Oracle数据库之PL/SQL触发器
- 批量替换sql 字段名称sql语句
- 【VB与数据库】机房收费系统设计阶段之结账
- 【VB与数据库】机房收费系统设计阶段之上下机
- Redis实现分布式锁全局锁—Redis客户端Redisson中分布式锁RLock实现
- mysql基本语法大全
- mysql索引碎片
- MySQL存储过程
- 游戏中MyBatis的动态SQL语句写法
- ibatis中SqlMapClient事务处理
- Sql Server根据条件将一列拆分成多列
- mysql的partition操作
- 数据库优化-基准测试(一)