学习笔记—MySQL(十九)——索引的创建与设计原则

索引的创建和设计原则是数据库管理的重要组成部分,直接关系到查询效率和数据库性能。
创建索引时,需要确定何时合适以及哪些字段适合建立索引。
创建索引有3种方式,删除时需要注意唯一索引的特殊规则。
MySQL8.0引入了新功能,索引设计原则提供了明确的指导。
适合创建索引的场景包括以下11种情况:1、字段唯一,建议添加唯一索引,保证数据完整性和查询效率。
2、经常用作WHERE条件的字段,通过使用索引可以显着优化查询速度。
3.经常使用Groupby和orderby字段。
索引顺序有利于数据的排序和分组。
4、对于UPDATE、DELETE操作的WHERE条件列,创建索引可以提高查询效率。
5.DISTINCT字段,创建索引可以提高去重效率。
6、用JOIN连接多表时,要注意字段类型的一致性,并创建索引来优化查询。
7、使用小类型创建索引,减少存储空间,提高检索效率。
8.使用字符串前缀创建索引,以节省空间并减少比较时间。
9、区分度高(哈希值高)的列适合作为索引,联合索引时放在前面。
10.根据最左前缀原则,最常用的列放置在联合索引的左侧。
11.在多个字段上创建索引时,联合索引比单值索引更好,以避免重复使用单个索引。
不适合创建索引的情况包括数据量较小、重​​复数据较多、频繁更新的表、无序值作为索引等。
此外,应限制索引的数量以避免过多的性能影响。
删除不再或很少使用的索引,并避免冗余或重复的索引定义,以优化性能和数据库管理。
一般来说,索引设计应考虑查询需求、数据特征、表大小、存储空间和更新效率,以实现最佳的数据库查询性能和管理。

各位大神们,请问oracle/mysql数据库创建索引的原则是什么?

了解数据库索引就像拥有快速搜索的钥匙。
MySQL或Oracle中的索引是一种对表中数据进行排序的结构。
他们的目的是加快信息检索速度。
在设计数据库时,是否创建索引以及创建什么类型的索引直接决定查询效率。
索引列可以快速响应查询,而未索引列可能需要耗时的等待时间。
创建索引虽然可以提高查询速度,但也会消耗额外的存储空间,影响数据修改的速度,影响系统性能。
索引的功能很多,包括:加速数据检索、确保数据唯一性、维护引用完整性以及优化GROUPBY和ORDERBY子句的查询处理。
并非所有列都需要建立索引。
一般来说,主键列、外键列、频繁查询或连接中使用的列以及需要快速检索并按排序顺序的列更适合作为索引目标。
设计索引时还需要考虑表更新性能、索引数量、索引宽度等因素。
创建大量索引会增加插入、更新和删除操作的延迟。
对于经常更新的表,要注意不要创建过多的索引,并保证索引宽度合适。
多个索引可以提高查询性能,尤其是在查询更新较少、数据量较大的小表时。
但是,在小表上创建索引可能不会带来显着的优化。