mysql 索引2

Posted 七七负柒柒

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql 索引2相关的知识,希望对你有一定的参考价值。

mysql 索引
Innodb的回表
    为普通列增加索引,会查找两次树,
因为普通列的索引中得到的值是主键值,然后在通过这个索引值到id的树结构中查找数据,如果是主键添加索引的话就只需要查找一张表,这种先找到主键id再去查找数据的方式就叫回表
MyISAM
叶子节点存储的是地址值,在通过地址值找到相应的数据
Mymory
特点查询速度快
原因:数据放在内存中
缺点:数据在内存中是非持久化的,而且数据量大的话占用内存资源
 
Innodb和MyISAM的区别:
    就是叶子节点存储的是数据还是地址值
 
索引分类:
    1.主键索引
    2.唯一索引   
    3.普通索引
    4.全文索引
    5.组合索引
 
主键索引:
自增id是如何实现的:
自增锁
不是自增id会产生页分裂和页合并
会造成资源浪费,效率和磁盘空间
 
 
覆盖索引
    普通索引会有回表的情况 在第一个B+树 返回的是主键值
所以查询的时候只查询主键的话 就只需要查询一个B+树 加快了查询速度
select id from table where name ="";
如果name和id两个列都有索引 
覆盖索引就是上面的写法只写id不进行回表操作 只查询name的索引b+树
 
全文索引:MyISAM支持 在Innodb5.6之后支持
现在可以使用ES来进行全文检索
    可以建立在varchar char text上建立
 
组合索引:
最左匹配原则
 
索引下推:
如上name建立索引的时候
select * from table where name ="zhangsan" and age= 18
原先没有索引下推的时候是:
    将name=zhangsan的数据的id值返回给主键索引树然后去取出来数据和查看age是否为18返回
有了索引下推是
    将name=zhangsan和age=18的id值返回给主键索引树 然后取出数据返回
 
存储引擎
 
索引维护

以上是关于mysql 索引2的主要内容,如果未能解决你的问题,请参考以下文章

MySQL索引介绍

MySQL------MySQL 索引事务与存储引擎

mysql-索引

mysql-索引

(2.8)Mysql之SQL基础——索引的分类与使用

MYsql索引相关