项目中索引的真实应用场景-2022新项目
一、业务场景
项目开发中,数据存储是一定少不了的,不管是存储关系型数据还是还是非关系型数据。可选择的范围也很广,比如mysql,postgresql,oracle,mongodb等等。一般都是根据项目的实际需要来选用数据库。选择数据库后,需要考虑的一个问题就是数据的存储性能,当数据量不多的时候,快一点慢一点影响都不大。可是在项目后期,随着数据量的不断增多,就必须要考虑性能问题,否则用户的使用体验会很差。比如加载一个页面非常慢,做某一个操作花的时间特别长等等。那么如何提升数据库中数据的存取效率呢?这就不得不说数据库索引这个数据结构。简单点说索引就好比是阅读一本书的时候,书中的目录,可以让你快速找到你想看的内容。数据库索引也是同样的道理,可以根据索引快速找到用户想查询的数据。下面就来说说真实项目中,索引使用的一些场景。
三、应用场景
.1.数据表中的更新时间字段创建普通索引;
这个字段创建索引的原因是一般排序的时候会使用到这个字段,还有很多的时间区间查询的时候会使用到这个字段;
.2.具有唯一性的字段,并且这个字段可能会单独作为一项查询条件,这种情况可以创建唯一索引;
比如什么什么编号,或者MQ消息的消息ID字段,可以单独创建一个索引;处理的时候一般会进行消息唯一性处理,会根据消息ID去查询某条数据是否已经处理过了。
.3.某几个字段从业务角度考虑具有唯一性,可以创建联合的唯一索引;
这种情况需要根据真实的业务需求具体分析,可能有两个字段,也可能有三个字段,组合起来具有唯一性。这样在数据入库的时候,就避免了数据重复。因为如果重复插入,会直接报错。
.4.两个字段或者是三个字段建立普通联合索引;
这种索引主要就是为了加快查询效率。
.5.单个字段建立普通索引;
这种处理方式是为了加快查询效率,比如有的按照名称查询时,可以加一个索引,提高查询效率。
.6.关联表中保存的主表中的主键字段;一般会创建普通索引;
这种比较常规,为了加快查询效率而创建的索引;特别是在进行关联查询的时候;
.7.表中的ID,非主键ID,而是业务数据的唯一ID,可以创建一个唯一索引。
这种情况一个是为了确保数据ID的唯一性,还有一个就是为了加快查询效率。
总结:上面的几种情况,是项目当中正在使用的几种方式。项目中几乎所有的表在建表的时候,都创建了索引,就是为了加快数据存取的效率。
自己在今后的工作中也可以借鉴。有其他想法的小伙伴,欢迎留言讨论。