Mysql索引失效之隐式转换
2017-12-13 12:37
169 查看
原文链接:https://my.oschina.net/u/2313177/blog/1589148
SkuId` varchar(32) NOT NULL COMMENT 'SkuId',
`SkuId` bigint(32) NOT NULL COMMENT 'SkuId',
根据以上现象我们可以看出当数据库字段为int类型的时候,入参类型无论是字符串还是int,都能够命中索引;
当数据库字段类型为varchar类型的时候,入参类型必须为varchar类型,才能够命中索引;
查了下mysql相关的资料,介绍如下:
mysql在比较值的时候,如果两边值的类型不匹配,那么就会进行隐式类型转换(转化成浮点类型);
总结如下: 当等式两边类型不一致的时候,都会被转换为浮点数再进行比较。
当等式左边varchar类型转化成浮点类型的时候,不会命中索引;
当等式左边是浮点类型的时候,右边类型转化不转化都能够命中索引;
转载于:https://my.oschina.net/u/2313177/blog/1589148
相关文章推荐
- 由于mysql隐式类型转换导致的索引失效的问题
- MySQL隐式类型转换导致索引失效
- mysql隐式转换造成索引失效的事故总结
- MySQL SQL优化之字符串索引隐式转换
- 隐式转换导致索引失效
- 关于oracle 与 mysql 的索引与隐式转换的总结
- SQL中一些不经意隐式类型转换或者函数使用导致索引失效问题
- 避免在sql的where中对字段进行转换(函数转换/操作符转换/隐式转换)------索引会失效从而导致慢查询
- MySQL索引失效的几种情况!!!
- mysql索引失效的五种情况分析
- Mysql索引会失效的几种情况分析
- Mysql索引失效
- mysql哪些情况下索引会失效
- Mysql 索引失效的情况总结
- MySQL索引失效的几种情况
- mysql 索引优化案例(索引失效)
- 关于MySQL隐式转换
- SQL优化 MySQL版 - 避免索引失效原则(一)
- MYSQL索引失效的各种情形总结
- 类型转换对 MySQL 选择索引的影响