该篇讲的主要是索引失效的情况。
1.对索引使用函数,会导致走全表搜索。因为使用函数后,索引变得无序,优化器选择不执行索引。
2.当对字符串类型的字段进行int类型的where查询时,因为mysql对这种情况,都是对字符串类型的字段进行转换,所以
select * from tradelog where tradeid=110717;
相当于:
select * from tradelog where CAST(tradid AS signed int) = 110717;
这样破坏了有序性,导致索引失效。