zoukankan      html  css  js  c++  java
  • 深入浅出索引--Mysql45讲笔记记录 打卡day3

    看了极客时间的mysql45讲记录一下自己理解的关于索引部分

    为什么会有索引呢?

    答:索引就像书的目录一样,可以让你快速知道你要看的部分在多少页。换句话说,索引就是为了提高数据库的查询效率。

    索引的数据结构有多种,哈希表,有序数组,搜索树。

    在innodb中表都是按照主键顺序以索引的形式存放在b+tree中的。

    每个索引对应一颗b+tree.

    根据叶子节点的内容,索引类型分为主键索引(聚簇索引)和非主键索引(二级索引或者普通索引)。主键索引的叶子节点存的是整行数据。非主键索引叶子节点内容是主键的值。

    基于主键索引和普通索引的查询区别是什么?

    主键索引查询的时候只需要搜索id这颗b+tree.

    普通索引查询的时候需要先搜索当前索引树,然后找到主键的值,再通过主键值去id索引树搜索一次,这个过程叫回表。也就是说他俩的区别就是普通索引比主键索引多扫描一棵树。因此我们尽量使用主键索引。

    最左前缀原则

    如果为每一种查询都设计一个索引,索引就太多了,也会比较占空间。b+tree可以利用索引的最左前缀,来定位记录。

    索引下推

    可以在索引遍历过程中,对索引中包含的字段先做判断,直接过滤掉不满足条件的记录,减少回表的次数。

    数据页:默认的页大小为 16KB,每个页中至少存储有 2 条或以上的行记录。

  • 相关阅读:
    从0系统学Android-2.6Activity间数据传递
    观察者模式详解
    从0系统学Android-2.5更多隐式Intent用法
    从 View 的四个构造方法说起
    ListView详细介绍与使用
    推荐一个程序员系统学习网址
    从 http协议角度解析okhttp
    从0系统学Android-2.4隐式Intent
    菜单布局记录篇
    轮播图记录篇
  • 原文地址:https://www.cnblogs.com/qt0909/p/11070681.html
Copyright © 2011-2022 走看看