索引类型:B tree(mongodb),B+ bree(Mysql),hash
mysql引擎:innodb myisame memory
B tree:多路平衡搜索数,degree代表最多分的叉。为了减少树的高度,从而减少 IO次数。一页 默认 16 KB 的话 每一页 包含数据
B+ tree:升级点 左闭右开、非叶子节点 不存储数据 ,一页 16 kb 没有 数据区。都在叶子节点好处是默认排序方便 扫表方便。
索引落地:存储在磁盘
myisame: tablename.myi 索引接口数据,tablename.myd数据。
myi 主键索引,普通索引 都是存的 myd的地址指针。
innodb:区分主键索引和普通索引。只有idb文件,主键索引叶子节点存储的数据,不是地址指针
其他索引 叶子节点存储的是主键的值,然后查询主键索引。
主键索引叫做聚集索引,其他叫做非聚集索引。
_rowid 隐藏索引 int 6 byte。
显示设置 int类型主键索引 是 4byte
索引最左匹配原则: accii 转值用于 平衡树的比较,联合索引(a, b)是根据a, b进行排序(先根据a排序,如果a相同则根据b排序)。name like ‘name%’ 会用到索引 == 最左前缀原则 ,但是特殊情况 有不用的场景。比如 索引都可以走到就会都不走。
执行计划:范围之后全失效 col > ???.
优化器:调换位置 使用 索引
查询缓存:mysql 8.0 去掉。缓存结果。
覆盖索引、回表操作:减少 select * ,要什么 拿什么。通过索引项信息可以直接返回所查询的列,则该索引称为查询sql的覆盖索引。回表操作是指主键的值查询主键索引树的过程。