![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
iteye_1361
这个作者很懒,什么都没留下…
展开
-
关于死锁
最近在项目中遇到了死锁的问题,在解决死锁的同时,也比较系统的理解了相关的锁,这里记录一下。 了解一下innodb中的锁 基本锁: 共享锁(S锁):读锁:事务T对数据A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。 排他锁(X锁):写锁。事务T对数据A加上X锁,事...原创 2017-03-21 17:33:40 · 104 阅读 · 0 评论 -
继续关于死锁
继续关于死锁的分析:上一篇分析大多只是表面上,概念上的。这篇根据项目中实际出现的死锁问题我们再来进一步分析一下。 来分析之前,先的弄清楚几个问题: MVCC: 在MySQL的InnoDB中,实现的是基于多版本的并发控制协议(MVCC):读不加锁,读写不冲突。 在MVCC中读操作分为两种: 快照读:读取的是记录当前的版本(有可能是历史版本),不用加锁。简单的select语句属于快照读,不加...原创 2017-03-28 18:09:16 · 231 阅读 · 0 评论 -
MySQL的8小时
一个关于MySQL的8小时问题在项目中的出现。 最近在项目测试过程中出现了数据库连接被close的问题。 现象: 早上一来测试前几条的订单时,就会报连接close,之后一天都是正常的。 初探: 用了C3P0,很自然的就想到了C3P0为什么会把close的连接给项目使用,因为C3P0本身会有检查连接是否有效的机制。自然就想到是不是配置有问题,结果配置了所有的选项,在本地测试都有...原创 2017-03-31 14:59:22 · 174 阅读 · 0 评论