![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 96
天罡gg
我是天罡老哥, 技术领域奋战十年多的老兵, 在世界500强、上市公司担任过TeamLeader、架构师, 现为大家分享一些技术积累, 希望我们能成为朋友,在寒冬抱团取暖!
展开
-
【MySQL】说透锁机制(三)行锁升表锁如何避免? 锁表了如何排查?
在上文我们曾小小的提到过,在索引失效的情况下,MySQL会把所有聚集索引记录和间隙都锁上,我们称之为锁表,或叫行锁升表锁.那么对于行锁升表锁,有的同学误以为行锁 升级变成了 表锁,但实际上锁的类型并没有发生变化✍️,还是行锁!哪些场景会造成行锁升表锁?无索引 或 索引失效!如何避免?如何分析排查?本文将给你答案!原创 2022-12-28 10:43:56 · 5183 阅读 · 60 评论 -
【MySQL】说透锁机制(二)行锁 加锁规则 之 范围查询(你知道会锁表吗?)
本文会按照 聚集集索->唯一索引->普通索引 的顺序 地毯式分析 范围查询中 = 的行锁情况,锁表分析在唯一索引 章节,万字长文,力求分析全面,很硬核全网独一份,别忘了收藏! 当然如果落下什么欢迎大家评论指出!聚集索引对于 聚集索引下的范围查询 =,无论是否组合,都会遵循如下规则:所有匹配的索引记录:只有>= 的等值(=)匹配 上Record Lock,其它 上Next-key Lock;对于 < 和原创 2022-12-15 12:01:52 · 4635 阅读 · 128 评论 -
【MySQL】说透锁机制(一)行锁 加锁规则 之 等值查询
如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机制、锁机制、MVCC机制等等,用一整套机制来解决并发问题,接下来会分几篇来分析MySQL5.7版本InnoDB引擎的锁机制。由于锁机制的内容很多,一篇写完字数太多,所以我决定分几篇来逐步更新。行锁更重要,优先从行锁说起,然后再说表锁。对于行锁,行锁的S/X模式和3种算法是最基础的,然后再深入分析行锁的加锁规则等等几篇,本文主要深入分析行锁的加锁规则中的等值查询。原创 2022-12-10 21:54:26 · 4223 阅读 · 138 评论 -
【MySQL】MVCC原理分析 + 源码解读 -- 必须说透
如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机制、锁机制、MVCC机制等等,用一整套机制来解决并发问题,本文主要介绍MySQL5.7版本的MVCC机制。MVCC, 全称 Multi-Version Concurrency Control(多版本并发控制)利用多版本解决的是读写并发冲突, 做到读写冲突时, 避免加锁, 实现非阻塞的读操作, 也就是无锁并发控制.原创 2022-11-28 02:24:17 · 5490 阅读 · 208 评论 -
【MySQL】事务隔离机制 -- 必须说透
如何控制并发是数据库领域中非常重要的问题之一,MySQL为了解决并发带来的问题,设计了事务隔离机制、锁机制、MVCC机制等,用一整套机制来解决并发问题,本文主要介绍事务隔离机制。事务transaction(简写tx),在数据库中,事务是指一组逻辑操作,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与结束之间执行的全部数据库操作组成。1、原子性(Atomicity)事务是一个原子操作单元,是不可分割的最小工作单元,就像化学中的原子,其对数据的修改,原创 2022-11-20 17:38:37 · 12368 阅读 · 120 评论 -
阿里同步神器Canal原理+安装+快速使用
最开始听说canal是从mysql与redis双写一致性解决方案,当时并没有太在意,最近由于需要实时同步数据,如果在代码对insert/update/delete做拦截也可以实现,但对代码侵入性太大了,并且后期更改时容易有遗漏,风险太高,这时就又想到了canal,canal的好处在于对业务代码没有侵入,因为是基于监听binlog日志去进行同步数据,这个真的是太爽爽爽了。并且实时性也能做到准实时,这也是canal为什么这么流行,因为确实很多企业会用来做数据同步的方案。原创 2022-11-15 12:30:41 · 5218 阅读 · 31 评论 -
window mysql 5.7安装教程
mysqld --install # 安装MySQL服务 mysqld --remove MySQL # 移除MySQL服务 net start mysql # 启动服务 net stop mysql # 停止服务 mysql -u root -p # 登录 Mysql update mysql.user set authentication_string = password('123456') where user = 'root';原创 2022-09-06 15:09:04 · 5047 阅读 · 1 评论