摘要: 1、什么是死锁 死锁是指两个或两个以上的事务在执行的过程中,因争夺资源而造成的一种互相等待的现象。 2、死锁示例 以下示例是基于RR隔离级别的基础下进行的。 CREATE TABLE `t` ( `id` int(11) NOT NULL, `name` varchar(10) DEFAULT NU 阅读全文
posted @ 2022-02-21 21:22 玉树临枫 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 一、前提 最近在使用分布式锁redisson时遇到一个线上问题:发现是subscriptionsPerConnection or subscriptionConnectionPoolSize 的大小不够,需要提高配置才能解决。 二、源码分析 下面对其源码进行分析,才能找到到底是什么逻辑导致问题所在: 阅读全文
posted @ 2022-01-13 21:30 玉树临枫 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 1、什么是索引 索引是存储引擎用于快速找到记录的一种数据结构。 2、索引有哪些数据结构 顺序查找结构:这种查找效率很低,复杂度为O(n)。大数据量的时候查询效率很低。 有序的数据排列:二分查找法又称折半查找法。 通过一次比较,将查找区间缩小一半。而MySQL中的数据并不是有序的序列。 二叉查找树:左 阅读全文
posted @ 2021-11-21 22:01 玉树临枫 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 一、 前言 前面说了一些概念,比如事务、MVCC、锁等,对Innodb有了个大概了解。 这次通过一个经典案例来将这些串起来回顾下。 二、经典案例 面试官:select * from t1 where id = 10; 这个SQL语句加了哪些锁,你能说说吗? 正在面试的某某,不自信的说:这个应该不加锁 阅读全文
posted @ 2021-10-17 08:32 玉树临枫 阅读(510) 评论(0) 推荐(0) 编辑
摘要: 一、前言 上一篇说了下innodb中锁的大概意思, 这篇说说怎么查看加的哪些锁。不然后续出现死锁或者锁等待都不知道为什么。 二、底层基础表信息 在学会如何查看有哪些锁信息时, 需要了解一些基础表信息, 这些能帮助我们快速排查。 从前两篇文章可以了解到innodb中的锁是在事务内执行的,所以我们先了解 阅读全文
posted @ 2021-08-22 10:29 玉树临枫 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 0、前言 上一篇从MySQL层面上了解锁,那么这篇我们从存储引擎上来了解, 以MySQL默认存储引擎Innodb来说,看看有哪些锁?(MySQL版本为8) 1、Shared and Exclusive Locks -- 共享锁和排他锁 两者都是行级锁; Shared Lock -- 共享锁(S), 阅读全文
posted @ 2021-07-10 11:01 玉树临枫 阅读(362) 评论(0) 推荐(0) 编辑
摘要: 一、前言 平时开发都有用到数据库,也知道里面有锁的说法,那什么是锁? 锁有哪些作用? 有哪些锁?以下以MySQL8来说 二、什么是锁 锁是用于管理对共享资源并发访问的一种机制, 且是数据库系统区别于文件系统的一个关键特性。 三、为什么需要锁 举个现实生活中的例子:商品搞活动时,商品数少但价格优惠引来 阅读全文
posted @ 2021-05-31 23:07 玉树临枫 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 一、前言 上篇文章记录了对MVCC的相关理解,其中有提到快照读。其实在MVCC并发控制中,读操作可以分为两类:快照读(snapshot read)和当前读(current read) 二、什么是快照读和当前读 快照读:读取的是记录的可见版本(有可能是历史版本),不加锁。 其实就是简单的select 阅读全文
posted @ 2021-04-28 17:10 玉树临枫 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 一、什么是MVCC MVCC (Multiversion Concurrency Control) 中文全程叫多版本并发控制,是现代数据库(如MySql)引擎实现中常用的处理读写冲突的手段,目的在于提高数据库高并发场景下的吞吐性能。 MySQL的InnoDB存储引擎默认事务隔离级别是RR(可重复读) 阅读全文
posted @ 2021-02-19 22:53 玉树临枫 阅读(903) 评论(2) 推荐(2) 编辑
摘要: 一、前提 时过一年重新拾起博文记录,希望后面都能坚持下来。 接着之前MySql的学习,先记录下这篇。 以下都是基于mysql8 innodb存储引擎进行分析的。 二、事务的ACID特性 A(Atomicity) 原子性 指整个数据库事务是不可分割的单位,整个事务中的所有操作要么全部提交成功,要么全部 阅读全文
posted @ 2021-01-30 11:20 玉树临枫 阅读(519) 评论(0) 推荐(0) 编辑