MySQL----索引篇

目录

1:索引的理解

2:索引的创建和删除

3:索引的失效


1:索引的理解

嗯...什么是索引呢,学过编程语言的同时应该知道数组,知道数组中的元素的查找是通过索引实现的吧,索引在MySQL中出现其实是为了提高查找效率。一张表的一个字段可以添加一个索引,多个字段联合起来也可以添加索引。说简单点,索引就是一本书的目录,是为了缩小搜索的范围而存在的机制。正常情况的查找一个接着一个地找,你有了索引后,他就知道你在哪个范围查找这大大提高了查找效率。

2:索引的创建和删除

创建索引: create index +(创建的索引名) +on  表名 + (表中的要创建的索引的字段名)

create index suo on dept(loc);     //这表示在dept这张表的loc字段创建了一个叫suo的索引

删除索引:drop index +(创建的索引名)+ on + 表名

//drop index suo on dept;//删除刚刚创建的索引


检查是否创建了索引:

explain select *from +表名 +where 条件
//就是看具体某一个查找的字段的查找效率

如下面:

 看到rows那个字段吗,那里显示14表示查找了14行,这是没有添加索引的情况

下面添加下索引:

 很明显,查找效率提高了吖!!!

3:索引的失效

索引虽然可以提高查找效率,但他有时候也会失效,具体我们来看看吧

(1)模糊查询
select *from emp where job='%t';
这个语句是不会走索引的,因为开头是模糊的,他不知道
在那个范围查找,怎么降低效率啊

(2)使用or
使用or的话,必须两边都要有索引才可以,其中一个没有
的话,不走索引。

(3)复合索引
复合索引就是多个字段联合的索引,具体看个例子就懂了
现在创建个索引:
create index suo on emp(job,sal);

使用索引:
explain select *from where job='clerk';//这个语句走了索引
如果是这条语句:explain select *from where sal=800;//这条语句就不会走索引了
总结就是复合索引,走索引走的是左边的

(4)where中的索引参加了运算
如:explain select *from where sal+1=800;
//这条语句不走索引,sal是加了索引,但是他在where中参加了运算,
//注意是sal+1=800而不是sal=800+1哦!!!!!



当然了,索引的实现不止这么多,我也只是列举大家常遇到的哈

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜到极致就是渣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值