索引创建的原则

简介: 创建索引需遵循六大原则:针对数据量大、查询频繁的表;在常用作查询、排序、分组的字段上建索引;优先选择区分度高或唯一的字段;varchar字段建议使用前缀索引;尽量创建联合索引,高区分度字段前置;避免过多索引,以降低维护成本,提升查询效率。

必答内容:

好的,我们知道索引确实可以提高查询的效率,但前提是需要针对于数据库表创建合适的索引。创建索引的时候主要考虑一下几点原则:

1).针对于数据量较大,且查询比较繁琐的表创建索引。(单表超过10w记录)

2).针对于经常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。3).尽量选择为区分度高的列建立索引,如果该字段是唯一的,建立唯一索引,效率更高。(区分度越高,效率越高)。

4).在varchar类型的字段上,建议指定索引长度(建立前缀索引)没必要对全字段建立索引,根据实际文本区分度决定索引长度就可以。

5).尽量建立联合索引,而且在联合索引中将区分度高的字段放在前面,减少单列索引。(查询时,联合索引很多时候可以索引覆盖,避免回表,提高效率)

6).在满足业务需求的前提下,建立适当的索引,索引不宜过多。(索引过多,会增加维护索引的成本,影响增删改的效率)

相关文章
|
6月前
|
安全 Java 编译器
【泛型】泛型:泛型擦除、通配符、上下界限定
Java泛型通过类型参数实现代码复用与编译期类型安全。其核心是**类型擦除**(运行时泛型信息被擦除,兼容旧JVM),配合**通配符**(`?`、`? extends T`、`? super T`)解决类型不变性问题,并依**上下界限定**约束类型范围。遵循PECS原则(生产者用extends,消费者用super),兼顾安全与灵活。
|
9月前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba诞生
阿里基于Spring Cloud打造Alibaba生态,推出Nacos、Sentinel、Seata等核心组件,覆盖服务发现、配置管理、流量控制与分布式事务,形成完整微服务解决方案,获Spring官方认可,推动Spring Cloud在企业级场景高效落地。
|
安全 应用服务中间件 数据安全/隐私保护
企业实战(5) Docker私有镜像仓库Harbor的部署与使用详解
企业实战(5) Docker私有镜像仓库Harbor的部署与使用详解
1074 0
|
10月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
60796 11
|
监控 数据库 索引
如何使用联合索引
【10月更文挑战第15天】如何使用联合索引
543 3
|
大数据 数据库 索引
索引创建的原则
本文介绍了创建数据库索引的六大原则,帮助提升查询效率。内容包括:为大数据量表建索引、常用查询字段建索引、高区分度列优先、varchar字段使用前缀索引、合理使用联合索引,以及控制索引数量以平衡查询与维护成本。
339 8
|
Java Maven
【异常】java: Internal error in the mapping processor: java.lang.NullPointerException
【异常】java: Internal error in the mapping processor: java.lang.NullPointerException
2766 0
|
监控 关系型数据库 MySQL
MySQL数据表索引命名规范
MySQL数据表索引命名规范
1910 1
|
Java 关系型数据库 MySQL
全网最实用的 IDEA Debug 调试技巧(超详细案例)
Debug 是程序员的开发神器,使用好了可以帮助我们非常高效的工作、学习、排查问题等。毫不客气的说,是决定我们进阶到更高层级的一个重要技能。 今天跟大家分享一下 IDEA 中 Debug 调试的各种奇技淫巧。
4872 0
全网最实用的 IDEA Debug 调试技巧(超详细案例)