首页 > 其他分享 >索引的建立原则, 如何避免索引失效

索引的建立原则, 如何避免索引失效

时间:2022-10-08 10:01:53浏览次数:49  
标签:全表 查询 索引 避免 使用 字段 失效

源自面试鸭

建立索引

1.经常使用的字段

2.字段最好唯一

3.字段类型尽量用数值型,减少字符类型

4.对于带条件和排序字段的字段建立索引

5.频繁出现在where条件后面的字段

6.字段应选差异性较大的字段,否则失去了索引的意义。

如何避免索引失效

1.最佳左前缀法则 - 如果索引了多列,要遵守最左前缀法则。指的是查询从索引的最左前列开始并且不跳过复合索引中间列。

2.不在索引列上做任何操作(计算、函数、(自动or手动)类型转换),会导致索引失效而转向全表扫描。

3.存储引擎不能使用索引中范围条件右边的列。

4.尽量使用覆盖索引(只访问索引的查询(索引列和查询列一致)),减少select *。

5.mysql在使用不等于(!=或者<>)的时候无法使用索引会导致全表扫描。

6. is null, is not null 也无法使用索引。

7.like以通配符开头(’%abc…’),mysql索引失效会变成全表扫描的操作。

8.字符串不加单引号索引失效。

9.少用or,用它来连接时会索引失效。

使用索引的缺点

1 、会使得写操作的性能下降,因为底层使用的是B+树,增删元素为了保持索引的查询效率,需要对树的结构重新排列,从而使得写操作的效率下降。
2、 索引其实是很庞大的,需要占用额外的磁盘空间。当然如今磁盘很便宜,可能不太在乎!

标签:全表,查询,索引,避免,使用,字段,失效
From: https://www.cnblogs.com/leepandar/p/16768051.html

相关文章

  • 谷歌翻译无法使用,google翻译失效,googleapis失效的解决方案
    我们日常工作和学习中,都无可避免的参考一些英文网站或者一些优秀的外国文献,这时候谷歌翻译就显得尤为重要。现在忽然不能使用了,经过几番探索,可通过修改dns解析即可恢复,希望......
  • filebeat采集log日志,并自定义索引
    filebeat配置:filebeat.inputs:#Each-isaninput.Mostoptionscanbesetattheinputlevel,so#youcanusedifferentinputsforvariousconfigurations.......
  • day07-2MySQL索引
    MySQL索引说起提高数据库性能,索引是最物美价廉的东西了。不用加内存,不用改程序,不用调sql,查询速度就能提高千百倍。例子首先,创建一个有800万条数据的表--创建测试数......
  • 前端妹子问我 position fixed 失效问题该如何解决?
    背景这两天公司一位妹子问我,“我这边调试的时候本地显示没问题,到手机端就有问题,该怎么办呢?”测试环境没问题到线上就有问题了?对此我也很纳闷。下图是复现的效果图,这个是一......
  • ES 索引模块
    分析模块索引分析模块作为一个可配置的分析器注册表,可用于将一个字符串字段转换为单独的术语,这些术语被。添加到倒置的索引中,以使文件可以被搜索到被高水平的查询所使用,......
  • Mysql索引
    索引概念:索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可提高数据库中特定数据的查询速度。索引特点:索引的优点主要有以下几条:(1)通过创建唯一索引,可以保......
  • 分区索引快速创建
    较大的分区表在创建索引的时候是一件非常痛苦的事情,执行过程很漫长,会使用大量的资源。到新的工作地点后,数据治理的同事给了一个非常好的案例,首先创建一个unusable的索引,这......
  • 04mORMot如何建表时,创建索引?
    TSQLDiaper=class(TSQLRecord)privatefSerialNumber:RawUTF8;fModel:TSQLDiaperModel;fBaby:TSQLBaby;publishedpropertySerialNumber:......
  • MySQL索引底层:B+树详解
    前言当我们发现SQL执行很慢的时候,自然而然想到的就是加索引。对于范围查询,索引的底层结构就是B+树。今天我们一起来学习一下B+树哈~公众号:「捡田螺的小男孩」树简介、树种类......
  • Vue.js框架:自定义组件全局挂载,避免每个用到的页面需要重复导入问题
    一、打包组件可以建立一个打包工具类,将所有的需要全局挂载的自定义组件进行打包封装,避免main.js过于杂乱。importgbInputfrom'../components/gbInput/gbInput'/......