首页 > 其他分享 >面试:你设计索引的原则是什么?怎么避免索引失效?

面试:你设计索引的原则是什么?怎么避免索引失效?

时间:2022-08-20 21:56:09浏览次数:63  
标签:GROUP 原则 建立 查询 索引 面试 失效

1.设计索引的原则是什么?

1. 为频繁查询的字段建立索引
2.选择区分度大的列作为索引
性别 男 女 加索引和不加区别不大
超过基线,比如查询的数据集大于30%

3.尽量为ORDER BY 和 GROUP BY 后面的字段建立索引
因为在GROUP BY 的时候也要先根据 GROUP BY 后面的字段排序,然后在执行聚合操作。
如果 GROUP BY 后面的字段已经建立了索引,那么MySQL 就不需要再去排序,也就不会产生临时表。

 

 

2. 索引失效的常见场景

使用 OR 关键字会导致索引失效,不过如果要想使用OR 又不想让索引失效,那就得需要为or条件中的每个列都建立索引。这很显然是和上面的不要建立太多的索引相违背。
联合索引如果不遵循最左前缀原则,那么索引也将失效
使用模糊查询的时候以%开头也会导致索引失效(这里就不再重复原因了,因为前面的文章都是说过了,这里就是为了帮助大家再会回忆下)
索引列如果使用了隐式转换也会导致索引失效

作者:HollisChuang
链接:https://juejin.cn/post/6960470472077082638
来源:稀土掘金

 

标签:GROUP,原则,建立,查询,索引,面试,失效
From: https://www.cnblogs.com/hixiaowei/p/16608711.html

相关文章

  • 视图、触发器、存储过程、事务(掌握)、内置函数、流程控制、循环结构、索引与慢查询优
    视图SQL语句执行的结果是一张虚拟表,我们可以基于这张表做其他的操作,如果这张虚拟表需要频繁使用,为了方便可以将这张虚拟表保存起来,保存之后就称之为视图(view)。视图的本......
  • MybatisPlus分页 假性失效
    背景:前端告诉我,页面只能显示1000条数据,实际上有4701条数据,为什么其他数据不能显示,后端返回的total就是1000。我看了后端分页插件配置也没有发现不正确的地方,使用了page()方......
  • 【面试题】JSON.stringify()妙用,你真的知道吗?
    JSON.stringify()妙用点击打开视频讲解更加详细语法:JSON.stringify(value,replacer,space)value:将要序列化成一个JSON字符串的值。replacer(可选):如果该参数是一个......
  • 事务与流程与索引
    视图SQL语句的执行后产生的结果是一张虚拟表,我们可以对该表做其他操作,如果这张虚拟表需要频繁使用,那我们就可以将这张虚拟表保存起来,保存起来的就被称为'视图'createvi......
  • 前端面试题
    1.函数柯里化柯里化就是将一个接收多个参数的函数转化为一系列使用一个参数的函数的技术。实现的效果就是:constfun=(a,b,c)=>{return[a,b,c]};//上述函数经......
  • MYSQL 索引2
    MYSQL索引深入浅出1.1什么是索引(What)1.1.1索引描述索引在搜索引擎优化简单解释指已经被收录且参与关键词排名的页面。索引的通俗解释索引就像是图书......
  • sql-面试题
    TopN问题需要确定使用什么排名函数,包含三种函数:row_number()、rank()、dense_rank()每个班级的分数为前3名的学生--建表语句createtablescore(sidstring,classstr......
  • 面试题-三个与SQL相关的问题
    一、SQL语法总结(面试:你能记得有多少种SQL的语法)? 二、select语句的顺序。 三、多表关联中,on与where的区别。 四、左连接、右连接、内连接、交叉连接有什么区别,你在......
  • Vue面试题05:Vue中如何扩展一个组件(应用题)
    Vue中如何扩展一个组件按照逻辑扩展和内容扩展来列举逻辑扩展的方法:mixins、extends、compositionapi内容扩展的方法:slots使用方法、使用场景和问题混入:mixi......
  • redis分布式锁解决业务处理时间超过锁失效时间的问题
    回顾redis分布式锁获取锁成功后为了防止客户端进程失败无法正常释放锁进而导致其他的客户端再也获得不到锁,在使用SETNX的时候我们还需要为每个锁加一个过期时间ExpireTim......