博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 索引
阅读量:4983 次
发布时间:2019-06-12

本文共 1614 字,大约阅读时间需要 5 分钟。

#

索引    加速查询速度    mysql的存储引擎的索引基于 b+树\hash做的        innodb b+树 聚集索引/聚簇索引 非聚簇索引        myisam b+树 非聚簇索引        memory hash    b+树做了那些事儿?为什么基于b+树的索引会快?        一颗平衡树        在非叶子节点不存储数据相关的信息,只存放指针  :  让树的高度降低了,所有的数据的寻找的时间是固定的        在叶子节点会直接存储数据或者数据的指针       :  能够直接找到对应的数据        叶子节点的各个数据块之间使用双向链表来连接   :  能够更好的进行范围\排序相关的操作    要想缩短树的高度,我们能做的事情        1.就是让每一列的宽度尽量的小    聚簇索引和非聚簇索引        聚簇索引            一张表只能有一个             只在innodb存储引擎中存在            b+树 : 在叶子节点会直接存储数据            所有的数据存储的物理地址是根据索引顺序   : 排序快        非聚簇索引            每张表可以有多个            在myisam,innodb中都存在            b+树 : 在叶子节点会存储数据的指针            所有的数据存储的物理地址和索引顺序无关            如果创建多个非聚簇索引,那么insert delete数据都会非常慢,并且占用更多的硬盘和内存
在创建表的时候创建索引CREATE TABLE ind1 (                id int primary key,                name char(12),                index ind_name(name)                );在建表之后添加索引CREATE TABLE ind2 (                id int primary key,                email char(12)                );CREATE INDEX ind_email on ind2(email);alter table ind2 add index ind_email(email);删除索引DROP INDEX ind_email ON ind2;
覆盖索引(好事儿)是你能够从辅助索引中直接拿到想要的数据,而不需要再经过IO从聚集索引中取值了可以在配置中开启慢日志,把所有的sql语句执行的超过了你预期时间的都记录下来,方便我们查看具体慢的sql语句,来进行修改和优化聚集索引  直接把数据存储在建立好了的索引中非聚集索引(辅助索引) name,sex 只有索引字段存储在索引中,该字段所在行的其他数据存储在另外的地址,在辅助索引的叶子节点上有一个指针指向这行数据所在的地址select name where name like 'eva';select name,sex where name like 'eva';age创建一个索引select age where age > 60;   # 覆盖索引select age,name where age > 60;   # 不是覆盖索引age,name创建一个联合索引select age,name where age > 60;   # 覆盖索引
explain和覆盖索引 甚至和索引都没有任何关系它只是在真正使用某一条sql语句之前先来看一看这条语句计划中是怎么执行的

 

转载于:https://www.cnblogs.com/zhangchen-sx/p/11273072.html

你可能感兴趣的文章
百度star2012初赛第一场的题目
查看>>
武汉第二十七天
查看>>
最长公共子序列
查看>>
MFC 鼠标去留
查看>>
怎么用xmind给自己制定计划目标
查看>>
word转PDF-jacob
查看>>
20条技巧,让Chrome超越Firefox
查看>>
正确释放WORD对象(COM组件) COMException: 被调用的对象已与其客户端断开连接
查看>>
Leetcode题解(一)
查看>>
SSIS报不能把DBNull convert成其他类型,Object等错误的解决办法
查看>>
【31】126. Word Ladder II
查看>>
Java反射基础
查看>>
List和Tuple的中的method对比
查看>>
关于ThreadLocal和一般的线程同步的详细解释
查看>>
HDFS源码分析心跳汇报之数据块汇报
查看>>
17Web服务器端控件
查看>>
es6-module
查看>>
(一)MapReduce篇之InputFormat,InputSplit,RecordReader(转)
查看>>
HTTP之Response状态码
查看>>
Mac如何使用git以及github
查看>>