您的位置:首页 > 数据库 > MySQL

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

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