new_pool 表的 indexType 为 all 缘由
在给定 sql 语句中,new_pool 表的 chlid 列存在索引,但 EXPLAIN 显示 indexType 为 all。这是因为:
当 SQL 查询中使用不等于运算符 (!=) 时,mysql 优化器需要评估所有行以确定哪些行满足条件。如果 != 运算符的使用成本过高,例如涉及多个列或大范围的值时,优化器可以决定进行全表扫描。
在这个案例中,new_pool 表有大量数据,MySQL 优化器判断 chlid != “news_top” 和 chlid != “news_ent” 这两个条件的成本太高,因此选择了全表扫描。全表扫描会扫描表中的所有行并逐一检查是否符合条件,因此索引在此时无法发挥作用,导致 indexType 为 all。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
【小浪云服务商 - 服务器12元起 - 挂机宝5元起】
THE END
暂无评论内容