如何使用mysql索引查询_MYSQL索引问题:索引在查询中如何使用?

假如你有一个表,SQL>CREATETABLEtest_tab(2idINT,3nameVARCHAR(10),4ageINT,5valVARCHAR(10)6);你的业务,有一个查询,是SELECT*FROMtest_tabWHEREname=一个外部输入的数据刚开始,数据不多的时候,执行效果还不错。随着数据量的增加,这个查询,执行起来,越来越慢了。然后在name上面建立了索引CREATEINDEXidx_test4_nameONtest_tab(name);这样,可以加快前面那个查询的速度。但是,某天,你执行了下面这个SQL,发现速度又慢了SELECT*FROMtest_tabWHEREage=25为啥呢?因为age字段上面,没有索引索引只在name上面有换句话说,也就是WHERE里面的条件,会自动判断,有没有可用的索引,如果有,该不该用。多列索引,就是一个索引,包含了2个字段。例如:CREATEINDEXidx_test_name_ageONtest_tab(name,age);那么SELECT*FROMtest_tabWHEREnameLIKE'张%'ANDage=25这样的查询,将能够使用上面的索引。多列索引,还有一个可用的情况就是,某些情况下,可能查询,只访问索引就足够了,不需要再访问表了。例如:SELECTAVG(avg)AS平均年龄FROMtest_tabWHEREnameLIKE'张%'这个时候,name与age都包含在索引里面。查询不需要去检索表中的数据。

阅读全文 >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值