ui设计流程培训网站,小米发布会ppt模板,做网站电话号码,兰州哪里做网站什么是索引
要了解索引优化和索引失效的场景就要先了解什么是索引
索引是一种有序的存储结构#xff0c;按照单个或者多个列的值进行排序#xff0c;以提升搜索效率。
索引的类型 UNIQUE唯一索引 不可以出现相同的值#xff0c;可以有NULL值。 INDEX普通索引 允许出现相同…什么是索引
要了解索引优化和索引失效的场景就要先了解什么是索引
索引是一种有序的存储结构按照单个或者多个列的值进行排序以提升搜索效率。
索引的类型 UNIQUE唯一索引 不可以出现相同的值可以有NULL值。 INDEX普通索引 允许出现相同的索引内容。 PRIMARY KEY主键索引 不允许出现相同的值且不能为NULL值一个表只能有一个primary_key索引。 fulltext index 全文索引 上述三种索引都是针对列的值发挥作用但全文索引可以针对值中的某个单词比如一篇文章中的某个词然而并没有什么卵用因为只有myisam以及英文支持并且效率让人不敢恭维但是可以用coreseek和xunsearch等第三方应用来完成这个需求。 Sql索引优化共有以下几种方法 通过explain 语句帮助选择更好的索引和写出更优化的查询语句。SQL语句中的IN包含的值不应该过多。当只需要一条数据的时候使用limit 1。如果限制条件中其他字段没有索引尽量少用or。尽量用union all代替union。不使用ORDER BY RAND()。区分in和exists、not in和not exists。使用合理的分页方式以提高分页的效率。查询的数据过大可以考虑使用分段来进行查询。避免在where子句中对字段进行null值判断。避免在where子句中对字段进行表达式操作。必要时可以使用force index来强制查询走某个索引。注意查询范围between、、等条件会造成后面的索引字段失效。关于JOIN优化 sql索引失效的场景
非最左匹配
最左匹配原则指的是以最左边的为起点字段查询可以使用联合索引否则将不能使用联合索引
错误模糊查询
模糊查询 like 的常见用法有 3 种 模糊匹配后面任意字符like 张%模糊匹配前面任意字符like %张模糊匹配前后任意字符like %张% 而这 3 种模糊查询中只有第 1 种查询方式可以使用到索引
列运算
如果索引列使用了运算那么索引也会失效
使用函数
查询列如果使用任意 MySQL 提供的函数就会导致索引失效
类型转换
如果索引列存在类型转换那么也不会走索引比如 address 为字符串类型而查询的时候设置了 int 类型的值就会导致索引失效
使用 is not null
当在查询中使用了 is not null 也会导致索引失效而 is null 则会正常触发索引的