• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

MySQL索引不会被使用的7种情况

武飞扬头像
征途黯然.
帮助1

[1] 隐式类型转换

  索引列出现了隐式类型转换(Implicit Type Conversion),则MySQL不会使用索引。常见的情况是,如果在SQLWHERE条件中,字段类型为字符串,而其值为数值,那么MySQL不会使用索引,这个规则和Oracle是一致的,所以,字符类型的字段值应该加上引号。

[2] cast函数

  在使用cast函数时,需要保证字符集一样,否则MySQL不会使用索引。

[3] OR

  如果WHERE条件中含有OR,除非OR条件中的所有列都是索引列,否则MySQL不会选择索引。

[4] 最左前导原则

  对于多列索引,若没有使用前导列,则MySQL不会使用索引。

[5] 通配符是第一个字符

  在WHERE子句中,如果索引列所对应的第一个字符由通配符开始,索引将不被采用,然而当通配符出现在字符串其他位置时,优化器就能利用索引。

[6] 全表扫描更快

  如果MySQL估计使用全表扫描要比使用索引快,那么MySQL将不使用索引。

[7] 运算

  如果对索引字段进行函数、算数运算或其他表达式等操作,那么 MySQL也个便用索引。

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhfkeaie
系列文章
更多 icon
同类精品
更多 icon
继续加载