美文网首页
mysql 查询优化记录

mysql 查询优化记录

作者: answer6 | 来源:发表于2019-07-25 14:24 被阅读0次

    1. 索引失效
    • 隐式类型转换:表字段类型为 varchar , 查询条件为 int 型。


      以 menu_order 为例



    这个时候该字段类型为 int,
    sql1:EXPLAIN SELECT * FROM wp_xk_product_info WHERE menu_order = '1000'

    我是执行分析

    sql2: EXPLAIN SELECT * FROM wp_xk_product_info WHERE menu_order = 1000

    我是执行分析2

    上面的 sql 看出,当字段类型为 int 的时候,不管过滤条件是 int 还是 string,都不会对索引造成影响。



    测试字段
    测试字段类型现在为 varchar
    sql1: EXPLAIN SELECT * FROM wp_xk_product_info WHERE menu_order = 1000
    执行结果
    sql2:EXPLAIN SELECT * FROM wp_xk_product_info WHERE menu_order = '1000'
    执行结果2

    对比看出,当字段类型为 int 的时候,查询条件为 int or string 都能用到索引;但是当字段类型为 varchar 的时候,只有过滤条件为 varchar 的时候才能用到索引。

    相关文章

      网友评论

          本文标题:mysql 查询优化记录

          本文链接:https://www.haomeiwen.com/subject/ltncrctx.html