摘要: 原子性、持久性、一致性都是通过redo log 和 undo log 来完成的。redo log 用来保证事务的持久性,undo log用来保证事务的原子性。Redo Log包括两部分: 一是内存中的重做日志缓冲(Redo Log Buffer),该部分日志是易失性的; 二是磁盘上的重做日志文件(R 阅读全文
posted @ 2021-11-08 21:05 cao_xiaobo 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 对于程序而言,外层循环越大,性能越低,对于数据库而言,永远是小的数据集放在最外层 程序设计原则:小的循环放到最外层,大的循环放在最小层 我们通过设置x、y、z的值来测试,而 x * y * z它的值是不变的,即我们测试的总循环次数不变。我们通过调整x、y、z的值分别来测试一下 注意,这里的测试需要通 阅读全文
posted @ 2021-11-08 20:54 cao_xiaobo 阅读(1629) 评论(0) 推荐(0) 编辑
摘要: 1.全表扫描 遍历整个主键索引的B+树,并且需要读叶子节点数据,称之为全表扫描。 例: select * from table; -- 全表扫描,不走ID索引 select id from table; -- 全索引扫描,走ID索引 2.全索引扫描 遍历整个二级索引的B+树。 例:假设name为ta 阅读全文
posted @ 2021-11-08 20:41 cao_xiaobo 阅读(4810) 评论(0) 推荐(1) 编辑
摘要: 示例数据 -- 创建表 create table table1( col1 int primary key, col2 int, col3 int, col4 int, col5 varchar(20) ) engine=INNODB; -- 插入数据 insert into table1 valu 阅读全文
posted @ 2021-11-08 20:39 cao_xiaobo 阅读(1247) 评论(0) 推荐(0) 编辑
摘要: 概念 聚簇索引:聚簇顾名思义,聚集在一起,即索引和数据是存放同一个文件中。其叶子节点中存放的就是整张表的行记录数据,也将聚集索引的叶子节点称为数据页。InnoDB引擎使用的是非聚簇索引。 非聚簇索引:索引文件和数据文件是分开的。MyISAM引擎默认使用的是非聚簇索引。 如下图所示: emp表是通过I 阅读全文
posted @ 2021-11-08 20:38 cao_xiaobo 阅读(2509) 评论(0) 推荐(0) 编辑
摘要: 前言 首先思考一个问题,MySQL可以通过索引提高查询效率,但是有时候某个索引大到达几十个G远远超过了内存的容量MySQL不可能把整个索引全部加载到内存,然后通过查找算法(二叉查找)去查找,MySQL是如何处理这个问题的? 这里MySQL就用到了操作系统中页的概念,操作系统中页的概念是什么?就是加载 阅读全文
posted @ 2021-11-08 20:37 cao_xiaobo 阅读(1686) 评论(0) 推荐(0) 编辑
摘要: 对于开发人员来说,Mysql当中最重要的两部分,一个是索引,一个是事务。这两个是开发人员的必备技能。 1.索引有什么作用? 拿生活中的例子来说明一下,我们都用过新华字典,字典可以按拼音查找,也可以按笔划来查找,我们暂时把它叫做拼音索引和笔划索引。但是如果没有这两个“索引”,你可能在查找某个字的时候两 阅读全文
posted @ 2021-11-08 19:18 cao_xiaobo 阅读(241) 评论(0) 推荐(0) 编辑