![](https://img-blog.csdnimg.cn/20190918140213434.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL笔记
文章平均质量分 87
MySQL
如果有独特
这个作者很懒,什么都没留下…
展开
-
深挖MySQL —— 事务(五)事务的隔离级别
在聊事务的隔离级别前,我们先看看事务之间若是没有隔离性,会产生什么问题原创 2021-09-11 13:25:46 · 127 阅读 · 0 评论 -
深挖MySQL —— 事务(四)事务隔离性的保证:锁
对于开发过并发编程的同学都知道,对于公共资源的管理,为了确保每个用户能以一致性的方式读取和修改数据,锁是必不可少的机制。原创 2021-09-10 17:40:26 · 349 阅读 · 0 评论 -
深挖MySQL —— 事务(三)事务一致性的保证与MVCC的基石:undo log
如有错误,敬请斧正;欢迎转载,但请务必注明出处;最后,在此向神奇的海螺保证,绝不太监!!!原创 2021-09-09 14:51:46 · 329 阅读 · 0 评论 -
深挖MySQL —— 事务(二)事务原子性与持久性的保证:redo log
重做日志概念的回顾重做日志redo log是事务原子性和持久性的保证,在前面博文也有聊到过一些redo log的概念,这里简单的回顾一下。redo log记录所有对数据库的修改操作,分为两个部分组成:一是内存中的缓冲日志redo log buffer,显然内存里的重做日志缓冲是易失的;二是重做日志文件,这是持久的,相对的,记录的速度是比内存慢的。 前面也有聊过它的几个重做日志从缓冲写入磁盘文件的时机,这里也回顾并补充一下:一是主线程的1秒循环写入和10秒...原创 2021-09-03 10:11:13 · 610 阅读 · 0 评论 -
深挖MySQL —— 事务(一)事务的特性
要认识事务,我们要先了解事务被使用在哪里,能带给我们什么样的效果。然后从不同的场景看事务有哪些不同的理解。 首先,我们先看事务将被使用在哪里:当我们需要将数据库从一个一致性状态转换到另一个一致性状态,即对于一个服务里面的所有sql,要么全部执行成功,要么全部不成功。 从中我么也可以归纳出事务带给我们的效果:ACID——原子性、一致性、隔离性、持久性。对于这四大特性网络上的解释已经非常详细,下面我简单总结一下。 原子性:原子性是指一个事务是...原创 2021-09-01 23:54:40 · 104 阅读 · 0 评论 -
深挖MySQL —— 索引结构与优化(三)索引的设计与优化
不管对MySQL学习打算浅尝即止,还是打算深入研究,相信都是对这部分内容最感兴趣的。这是与应用设计、开发与实施有着最直接关系的一个模块。原创 2021-08-28 22:35:18 · 185 阅读 · 0 评论 -
深挖MySQL —— 索引结构与优化(二)索引组织表
innodb的数据是按照主键的顺序存放在B+树中,所以innodb存储引擎表又叫索引组织表。所谓聚集索引,就是以主键为key建立一颗B+树,同时叶子节点存放行记录数据,故聚集索引的叶子节点称为数据页。聚集索引的特性决定了索引组织表中的数据也是索引的一部分。...原创 2021-08-20 22:36:12 · 95 阅读 · 0 评论 -
深挖MySQL —— 索引结构与优化(一)B+树
innodb选择了B+树来作为索引和数据存储的数据结构,索引在聊索引之前,我们先来观察下B+树的结构图,脑海里现有一个概念。这里偷懒没有画图,下图截取自《MySQL技术内幕》: 可以看到上图有几个比较显著的特征: 1)是一个有序的2层的树形结构 2)叶子节点根据非叶子节点的key值分布 3)叶子节点间有指针相连 4)最后说一个易被误解的地方,叶子节点里看起来是个数组,其实真实结构是个链表...原创 2021-08-20 15:09:39 · 395 阅读 · 0 评论 -
深挖MySQL —— innodb的运作过程(三)物理表空间
上一篇了解了innodb的内存结构与线程的分工,我们再来了解下innodb的物理存储结构,之所以单独开一篇,因为innodb的物理表空间是按照B+树的数据结构组成的,在这里对B+树作一并介绍。...原创 2021-08-20 10:48:18 · 121 阅读 · 0 评论 -
深挖MySQL —— innodb的运作过程(二)线程的分工
众所周知,想要清晰的了解一款软件的运作原理,最重要的就是要了解它的物理结构、内存结构和内部线程运行分工。下面让我们一起来看看innodb的后台线程是如何分工的。 这里要区分一下MySQL用户线程和innodb后台线程,MySQL的用户线程不属于innodb,它和用户会话session属于一对一的关系,用于处理用户的连接与命令。对于innodb的缓冲管理,内存和物理磁盘间的数据同步,由innodb的后台线程来操作:主线程、IO线程、Purge线程、Page Cleaner线程...原创 2021-08-16 23:04:36 · 123 阅读 · 0 评论 -
深挖MySQL —— innodb的运作过程(一)内存的分配
MySQL的存储引擎丰富多样,不过根据二八原理,我们只要拿捏好最常用,我们最多接触的便可(事实上,本博主也仅仅对innodb比较熟悉,嘿嘿)。innodb最早于innodbaseOy公司的芬兰赫尔新基,基哥,领携开发。现在流行于Google、Facebook等著名公司。 众所周知,想要清晰的了解一款软件的运作原理,最重要的就是要了解它的物理结构、内存结构和内部线程运行分工。下面让我们一起来看看innodb是如何分配的:innodb的内存结构 innod...原创 2021-08-16 10:47:56 · 204 阅读 · 0 评论 -
深挖MySQL —— MySQL初探
隔了好几年没有写博客了,突然又想动笔写点什么。从事开发这几年从没停下过自学的脚步,但所谓一入软件深似海,随着看的东西越多越是不敢下笔。总是觉得自己的理解差了点什么,就像每次翻过同一本书,每次都能看到不少之前理解的偏差,总是怕写的东西贻笑大方。不过转念想,好歹努力过,学习过,总还是留下点痕迹,如果有幸有一二位读者看到我的文章,能对自己有一些帮助,那也还算有些意义了。言而总之,话不多说,来分享下这些年对MySQL的学习和理解吧。一、MySQL的历史背景 相信大部分人对此也没...原创 2021-08-13 21:57:08 · 173 阅读 · 0 评论