mysql字段类型为char类型,建立索引但未使用原因

    最近在做mysql索引测试,新建了一个数据表,为两个字段分别建立普通索引,本来是为了测试其他的情况做准备,开始之前,分别对这两个字段进行了一个简单的查询操作,explain一下不当紧,一下颠覆了我的认知,我明明只是使用了where  字段名=字段值  操作,按理说应该是走索引的呀,为什么不走了?不甘心,我又测试几遍,type类型都是ALL,全表查询,为什么,难道where  字段名=字段值本来就不走查询吗,我又去测试了下现有的其他数据表,结果正常,确实走索引,那这个表是为什么呢?搜索了一些资料,但是都没有解决,或许是搜索的关键字不对吧,我又仔细看了一遍这两个“”特殊“”的字段,也没什么特别,对比这走索引的表和不走的索引的表,唯一的不同之处就是不走索引的字段类型是char,而走索引的是int,难道char不能使用索引?变更了关键词,查询了,终于找到了问题所在,不是char类型不能走索引,而是查询的时候必须要加引号,说明这是个字符串,我的数据恰巧都是数字组成,查询的时候也没有刻意去加引号,导致查询的时候不走索引,加上引号立马生效,看来以后不能偷懒,即使是纯数字的字符串也得加上引号说明类型。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值