1.行锁和表锁

在mysql 的 InnoDB引擎支持行锁,与Oracle不同,mysql的行锁是通过索引加载的,即是行锁是加在索引响应的行上的,要是对应的SQL语句没有走索引,则会全表扫描,

行锁则无法实现,取而代之的是表锁。

2.连表锁机制

在连表操作中,双方表选中的所以行当中一旦有一条在锁定中,则整个查询会被阻塞。

3.死锁

假如有记录1和2,当两个并行的事务a和b,a修改了记录1,而b修改了记录2,两个事物均未提交的情况下,a想接着修改记录2,而b想接着修改记录1,双方都等待着自己要修改的记录锁释放,结果是双方都会陷入无限阻塞中,

形成死锁,不过由于Mysql的异常机制导致后提交的mysql进程(也就是触发死锁的进程)会抛出错误:[Err] 1213 - Deadlock found when trying to get lock; try restarting transaction,因为一方抛出异常释放了锁定结束了,而另外一个进程则无感知,可以正常提交事务。

4.事件隔离级别

MySQL InnoDB的默认事件隔离级别是"REPEATABLE READ",未提交的事务,修改是不被体现在没加锁的查询上的,如果对数据一致性要求很高的查询,建议加上共享锁。

最新文章

  1. C#实现Levenshtein distance最小编辑距离算法
  2. #essay 161218# 自己的markdown笔记(日记)方法
  3. web页面放到手机页面,缩放问题
  4. js 日期处理,json处理
  5. SVM 最大间隔目标优化函数(NG课件2)
  6. factory工厂模式之简单工厂SimpleFactory
  7. spring基于注解的配置文件
  8. CLIP PATH (MASK) GENERATOR是一款在线制作生成clip-path路径的工具,可以直接生成SVG代码以及配合Mask制作蒙板。
  9. 新工程软连接到原来的工程的out目录后,可以直接编译模块
  10. iOS 错误 之 Potential leak of an object stored into 'cs'
  11. MySQL数据库基础(MySQL5.7安装、配置)
  12. Dynamics CRM 部署NLB后使用群集名称访问弹验证框验证不过的解决方法
  13. memcached分析
  14. R语言 实验三 数据探索和预处理
  15. SVM计算过程,对偶形式,核函数
  16. 用js实现个优先队列吧
  17. MySQL 逻辑备份工具
  18. 《Linux内核设计与实现》学习总结 Chap5
  19. Python中 append 和 extend 的区别
  20. 浅谈 温故知新——HTML5!

热门文章

  1. UUID在Java中的实现与应用
  2. [转载]SpringMVC解决跨域问题
  3. ThinkJS 开发node后端 使用 简介
  4. ext.net gridlist选择内部元素时自动选择所在行
  5. luogu 2051 中国象棋
  6. tensorflow faster rann
  7. Embedded training,嵌入式训练
  8. C#后台画图保存为ipg/png的文件
  9. mfc调用WPFDLL
  10. Centos 02 操作系统 & Linux安装