4、空间索引
空间索引只能在存储引擎为 MYISAM 的表中创建
创建索引我们通常都是在创建好的表上面增加索引
利用 alter 语句
alter table table_name add [unique|fulltext|spatial][index|key]如:给学生表的姓名字段加上索引
[index_name](col_name[length],...) [asc|desc]
文章插图
利用 create 语句
create [unique|fulltext|spatial] index index_name普通索引
on table_name(col_name[length],...) [asc|desc]
文章插图
唯一索引
文章插图
复合索引
文章插图
删除索引
alterExplain
alter table table_name drop index index_name
drop
drop index index_name on table_name
文章插图
explain 语句输出结果的各个行的解释如下:
? select_type: 表示查询中每个select 子句的类型(简单 or 复杂)
? type:表示 mysql 在表中找到所需行的方式,又称“访问类型”:[all, index, range, ref, eq_ref, const, system, null](从左
到右,性能从差到好)
ALL:Full Table Scan,MySQL 将遍历全表以找到匹配的行? possible_keys :指出 MySQL 能使用哪个索引在表中找到行,查询涉及到的字段上若存在索引,则该索引将被列出,但
index: Full Index Scan,index 与ALL 区别为 index 类型只遍历索引树
range:只检索给定范围的行,使用一个索引来选择行
ref: 表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值
eq_ref: 类似 ref,区别就在使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配,简单来说,就是多表连接
中使用 primary key 或者 unique key 作为关联条件
const、system: 当 MySQL 对查询某部分进行优化,并转换为一个常量时,使用这些类型访问 。如将主键置于 where列表中,
MySQL 就能将该查询转换为一个常量,system 是const 类型的特例,当查询的表只有一行的情况下,使用system
NULL: MySQL 在优化过程中分解语句,执行时甚至不用访问表或索引,例如从一个索引列里选取最小值可以通过单独索引查
找完成
不一定被查询使用
? key: 显示 MySQL 在查询中实际使用的索引,若没有使用索引,显示为 NULL
? key_len :表示索引中使用的字节数,可通过该列计算查询中使用的索引的长度
? ref :表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值
? rows :表示 MySQL 根据表统计信息及索引选用情况,估算的找到所需的记录所需要读取的行数
? Extra :包含不适合在其他列中显示但十分重要的额外信息 如 using where,using index
关于索引长度问题
对于 char和 varchar列,只用一列的一部分就可创建索引 。创建索引时,使用 col_name(length)语法,对前缀编制索引 。前缀包括每列值的前length 个字符 。blob 和 text 列也可以编制索引,但是必须给出前缀长度 。今天我的分享就到这里,大家有没有什么好的学习方法呢?欢迎来留言评论,和我们一起交流 。如果喜欢我的文章,也欢迎大家关注、点赞、转发 。我是丫丫,一个专注分享项目实战技能的IT从业者 。
使用列的一部分创建索引可以使索引文件大大减小,从而节省了大量的磁盘空间,有可能 提高 insert操作的速度
【我这么久,才弄清楚mysql的触发器、视图、索引,受益匪浅】
推荐阅读
- 网站应该注意哪些用户体验问题
- 什么是真正的架构设计?十年Java经验让我总结出了这些
- 黄茶存放越久越好吗,牛山黄茶保质期多久
- AI的下一站
- 男生对女生说我擦是什么意思 你kin你擦什么意思
- 深圳搬家公司电话是多少
- 沙琪玛保质期有多久?
- 面包可以冷冻吗?
- 我国六大种类茶,黄茶的种类全介绍
- 包子能冷冻吗?