数据库
mysql数据库
Running-Waiting
用最好的年华来担保说出来都可能被嘲笑的理想
展开
-
MySQL锁详解
MySQL锁详解理论是灰色的,实践之树长青???? ——恩格斯官方文档介绍在MySQL官方文档中,介绍了InnoDB的七种锁:共享锁(S锁)与排他锁(X锁);意向锁(Intention Locks);记录锁(Record Locks);间隙锁(Gap Locks);临键锁(Next-Key Locks);插入意向锁(Insert Intention Locks);自增锁(Auto-inc Locks);但是上述的锁分类并不是从同一个维度进行划分的,所以在这里我们采用另一种划原创 2020-05-26 22:04:43 · 322 阅读 · 0 评论 -
MySQL事务实现原理之Redo Log
理论是灰色的,实践之树长青???? ——恩格斯前言在介绍事务原理之前我们先来说一下事务的四个核心属性:原子性:事务要么不执行,要么完全执行。如果执行到一半, 宕机重启,已执行的一半要回滚回去;一致性:各种约束条件,比如主键不能为空、参照完整性等;隔离性:隔离性和并发性密切相关,因为如果事务全是串行的 (第四个隔离级别),也不需要隔离;持久性:一旦事务提交了,数据就不能丢;而说起事务实现,Redo Log是一个重要的话题,它主要实现了事务的持久化属性;Write-Ahead Log一个原创 2020-05-16 18:09:26 · 3225 阅读 · 7 评论 -
MySQL之B+树详解
理论是灰色的,实践之树长青???? ——恩格斯概述MySql这样的关系型数据库在查询方面有一些重要特性,是KV型的数据库或者 缓存所不具备的,比如:(1)范围查询。(2)前缀匹配模糊查询。(3)排序和分页。这些特性的支持,要归功于B+树这种数据结构。下面我们来分析一下B+树是如何支持这些特性的。逻辑结构这里我们拿数据库主键对应的B+树逻辑结构来说明,这个结构有几个关键特性:在叶子节点一层,所有记录的主键按照从小到大的顺序排 列,并且形成了一个双向链表。叶子节点的每一个Key指向一条记录原创 2020-05-15 12:07:56 · 17693 阅读 · 6 评论 -
面试题:InnoDB中B+树有几层?
上次腾讯面试问到了这个问题,当时以为是和索引数量有关,下来查了一下资料,有博主好文,所以在这里转载收藏一下,如有侵权,联系删除,感谢!一、InnoDB 一棵 B+ 树可以存放多少行数据?这个问题的简单回答是:约 2 千万。为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从 InnoDB 索引数据结构、数据组织方式说起。我们都知道计算机在存储数据的时候,有最小存储单...转载 2020-03-18 16:15:01 · 12449 阅读 · 15 评论 -
mysql 事务的实现原理
相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability)等。 今天想跟大家一起研究下事务内部到底是怎么实现的,在讲解前我想先抛出个问题: 事务想要做到什么效果? 按我理解,无非是要做到可靠性以及并发处理 下面我首先讲实现事务功能的三个技术,分别是日志文件(redo l...转载 2019-12-01 20:51:30 · 625 阅读 · 0 评论 -
MySQL索引相关
前述可能作为一个程序开发者,我们都知道数据库索引的重要性,我们可能会使用索引来优化数据库,但真正问到索引底层知识的时候我们可能又不知道说些什么了,在这里总结一下最近学习索引的相关知识与感受。索引是什么、为什么使用索引是一种与表有关的数据库结构、一个类似于目录的东西,它将无序的数据有序化,提高数据的访问速度与效率。索引的底层数据结构索引的数据结构包含B+树和哈希表两种。InnoDB存储引...原创 2019-05-30 22:22:34 · 264 阅读 · 0 评论 -
一条SQL语句执行得很慢的原因有哪些
一、分类讨论1. 大多数情况是正常的,只是偶尔会出现很慢的情况。2. 在数据量不变的情况下,这条SQL语句一直以来都执行的很慢。二、偶尔出现很慢的情况一条 SQL 大多数情况正常,偶尔才能出现很慢的情况,针对这种情况,我觉得这条SQL语句的书写本身是没什么问题的,而是其他原因导致的,那会是什么原因呢?数据库在刷新脏页(flush)我也无奈啊当我们要往数据库插入一条数据、或者要更新一...转载 2019-09-25 17:57:29 · 175 阅读 · 0 评论