自学内容网 自学内容网

TCL大数据面试题及参考答案

Mysql 索引失效的场景

  • 对索引列进行运算或使用函数:当在索引列上进行数学运算、函数操作等,索引可能失效。例如,在存储年龄的列上建立了索引,若查询语句是 “SELECT * FROM table WHERE age + 1 = 20”,这里对索引列 age 进行了加法运算,数据库会放弃使用索引而进行全表扫描。
  • 索引列使用了隐式类型转换:如果查询条件中索引列的数据类型和实际存储的数据类型不一致,导致隐式类型转换,索引可能失效。比如索引列是字符串类型,查询时使用数字进行比较,像 “SELECT * FROM table WHERE index_column = 123”,而实际存储的是字符串 '123',这种情况下索引通常不会被使用。
  • 使用 OR 连接多个条件且其中有索引列和非索引列:当使用 OR 连接的多个条件中,既有建立了索引的列,又有未建立索引的列,很可能导致索引失效。例如 “SELECT * FROM table WHERE indexed_column = 'value' OR non_indexed_column = 'value2'”,数据库可能会选择全表扫描而不使用索引。
  • LIKE 查询以通配

原文地址:https://blog.csdn.net/linweidong/article/details/143983471

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!