深入浅出索引--Mysql45讲笔记记录 打卡day3
看了极客时间的mysql45讲记录一下自己理解的关于索引部分
为什么会有索引呢?
答:索引就像书的目录一样,可以让你快速知道你要看的部分在多少页。换句话说,索引就是为了提高数据库的查询效率。
索引的数据结构有多种,哈希表,有序数组,搜索树。
在innodb中表都是按照主键顺序以索引的形式存放在b+tree中的。
每个索引对应一颗b+tree.
根据叶子节点的内容,索引类型分为主键索引(聚簇索引)和非主键索引(二级索引或者普通索引)。主键索引的叶子节点存的是整行数据。非主键索引叶子节点内容是主键的值。
基于主键索引和普通索引的查询区别是什么?
主键索引查询的时候只需要搜索id这颗b+tree.
普通索引查询的时候需要先搜索当前索引树,然后找到主键的值,再通过主键值去id索引树搜索一次,这个过程叫回表。也就是说他俩的区别就是普通索引比主键索引多扫描一棵树。因此我们尽量使用主键索引。
最左前缀原则
如果为每一种查询都设计一个索引,索引就太多了,也会比较占空间。b+tree可以利用索引的最左前缀,来定位记录。
索引下推
可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表的次数。
数据页:默认的页大小为 16KB,每个页中至少存储有 2 条或以上的行记录。
深入浅出索引--Mysql45讲笔记记录 打卡day3的更多相关文章
- 一条SQL语句是如何执行的?--Mysql45讲笔记记录 打卡day1
写在前面的话:回想以前上班的时候,空闲时间还是挺多的,但是都荒废了.如今找工作着实费劲了.但是这段时间在极客时间买了mysql45讲,就好像发现了新大陆一样,这是我认真做笔记的第一天,说实话第一讲我已 ...
- 日志系统:一条sql更新语句是如何执行的?--Mysql45讲笔记记录 打卡day2
下面是一个表的创建语句,这个表有一个主键id和一个整型字段c: create table t(id int primary key,c int); 如果要将 id = 2 这一行的值加 1,sql语句 ...
- MySQL45讲笔记-事务隔离级别,为什么你改了数据我看不见
简单来说,事务就是要保证一组数据库操作,要么全部成功,要么全部失败.在MySQL中,事务至此是在引擎层实现的,但并不是所有的MySQL引擎都支持事务,这也是MyISAM被InnoDB取代的原因之一. ...
- Mysql实战45讲 05讲深入浅出索引(下)极客时间 读书笔记
极客时间 Mysql实战45讲 04讲深入浅出索引(下)极客时间 笔记体会: 回表:回到主键索引树搜索的过程,称为回表覆盖索引:某索引已经覆盖了查询需求,称为覆盖索引,例如:select ID fro ...
- Mysql实战45讲 04讲深入浅出索引(上)读书笔记 极客时间
极客时间 Mysql实战45讲 04讲深入浅出索引 极客时间(上)读书笔记 笔记体悟 1.索引的作用:提高数据查询效率2.常见索引模型:哈希表.有序数组.搜索树3.哈希表:键 - 值(key - v ...
- MySQL 笔记整理(5) --深入浅出索引(下)
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 5) --深入浅出索引(下) 这次的笔记从一个简单的查询开始: 建表语句是这样的 mysql> create table T ...
- MySQL 笔记整理(4) --深入浅出索引(上)
笔记记录自林晓斌(丁奇)老师的<MySQL实战45讲> 4) --深入浅出索引(上) 一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样. 索引的常见模型 哈希表: ...
- mysql45讲
一共48讲,学习时间2天. 开篇词 (1讲) 开篇词 | 这一次,让我们一起来搞懂MySQL 理论指导实践:先系统性的学习原理,再实践验证. 你可以从点到线再到面,形成自己到mysql知识网络. 在使 ...
- MySQL索引知识学习笔记
目录 一.索引的概念 二.索引分类 三.索引用法 四 .索引架构简介 五.索引适用的情况 六.索引不适用的情况 继我的上篇博客:Oracle索引知识学习笔记,再记录一篇MySQL的索引知识学习笔记,本 ...
随机推荐
- bzoj4161 (k^2logn求线性递推式)
分析: 我们可以写把转移矩阵A写出来,然后求一下它的特征多项式,经过手动计算应该是这样的p(x)=$x^k-\sum\limits_{i=1}^ka_i*x^{k-i}$ 根据Cayley-Hamil ...
- 寒武纪camp Day3
补题进度:9/10 A(多项式) 题意: 在一个长度为n=262144的环上,一个人站在0点上,每一秒钟有$\frac{1}{2}$的概率待在原地不动,有$\frac{1}{4}$的概率向前走一步,有 ...
- 2017年icpc西安网络赛 Maximum Flow (找规律+数位dp)
题目 https://nanti.jisuanke.com/t/17118 题意 有n个点0,1,2...n-1,对于一个点对(i,j)满足i<j,那么连一条边,边权为i xor j,求0到n- ...
- java Map集合对比分析
1.Map:Map是所有map集合的顶级父接口,用于key/value形式的键值对,其中每一个key都映射到一个值,key不能重复. 2.TreeMap:该map将存储的键值对进行默认排序,并且还能够 ...
- 【转载】epoll与select/poll的区别总结
因为这道题目经常被问到.干脆总结一下,免得遗漏了. 参考文章:http://www.cnblogs.com/qiaoconglovelife/p/5735936.html 1 本质上都是同步I/O 三 ...
- hash_map与unordered_map区别
http://blog.csdn.net/blues1021/article/details/45054159
- Unable to connect to database server to retrieve database list; Arcgis 连接不上postsql库;
在C:\Program Files (x86)\ArcGIS\Desktop10.2\bin 目录下添加 pg依赖的插件 插件下载地址:
- [RxJS] Use `lift` to Connect a `source` to a `subscriber` in RxJS
The lift method on each source hides away the internals of RxJS so you can simply connect a source t ...
- Android开发艺术-第二章 IPC 机制
2.1 Android IPC 简单介绍 IPC 意为进程间通信或者跨进程通信,线程是 CPU 调度的最小单元,是一种有限的系统资源. 进程一般指一个执行单元.不论什么操作系统都须要对应的 IPC 机 ...
- Codeforces Round #277 (Div. 2)---C. Palindrome Transformation (贪心)
Palindrome Transformation time limit per test 1 second memory limit per test 256 megabytes input sta ...