【数据库】索引设计原则

索引一定要建立在查询更快、占用空间更小的基础上建立

适合

1.适合索引的列是出现在where子句中的列,或者连接字句中的唯一列

        比较好理解,如果建立的索引并不会经常被使用到,建立索引就只会增加空间,没有意义了

2.对于数据量较小的表,索引效果差,没有必要建立索引

        如果一个表中只有几十条数据,从头到位遍历一遍速度也很快,建立索引就没有意义了

3.使用短索引,如果对长字符串进行索引,应该制定一个前缀长度,这样能够节省大量索引空间,如果搜索词超过索引前缀长度,则使用索引排除不匹配的行,然后检查其余行是否可能匹配

        也就是说索引的长度不易过长,比如一个长度为100的字符串,如果直接作为索引存储,那么这个索引建立以后会占用大量的空间,我们就可以去这个字符串的前十位作为索引,当我们要查找的数据超过十位的时候,就可以对这些前十位相同的数据逐一进行比较,这样可以尽可能的减少空间,同时满足速度

4.不要过度索引,索引需要占用额外的磁盘空间,并降低读写操作的性能, 在修改表的内容的时候,索引会进行更新甚至重构,索引列越多,这个时间就会越长,所以只保持需要的索引有利于查询即可

        也就是说不要建立过多的索引,比如一行有十个数据,只需要将辨识度较高的列设为索引即可,因为建立出的索引也是需要额外空间的,如果同一张表建立的索引过多,因为底层是B+树,在插入数据的时候需要维护的索引过多,有些B+树甚至要重构,那么就会导致查询可能没有方便多少,但是插入和删除的开销过大,得不偿失

5.有外键的数据列一定要建立索引

不适合

1.频繁更新的字段不适合建立外键

        因为B+树频繁更新开销较大

2.不能有效区分数据的列不适合作为索引(比如性别,区分度太低)

3.尽量扩展索引,不要新建索引,比如已经有a索引,需要添加b索引,可以将a变为(a,b)联合索引,这样只需要修改原先的索引即可

        新建索引的空间占用问题

4.对于查询中很少涉及的列,重复值比较多的列不要建立索引

        用不着就不用建立

5.对于定义为text、image和bit的数据列星不要建立索引

        与UUId类似,存储稀松 

参考文章

膜拜!华为大牛透彻讲解Java面试100道必考题,不管你工作几年,都得看看!现在免费分享给大家!_哔哩哔哩_bilibili

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 数据库索引设计与优化是数据库领域非常重要的一项工作。索引是对数据库表中一列或多列的值进行排序的结构,可以极大地提高数据的检索效率。 在进行索引设计时,需要考虑到数据库表的查询需求、表的大小、数量以及表结构的复杂性等因素。首先,需要确定哪些列需要创索引,通常是频繁被查询的列。其次,需要选择合适的索引类型,如B树索引、哈希索引等。不同的索引类型有不同的适用场景和性能优劣。 在索引的优化过程中,可以通过以下方式提高索引的效率。首先,合理设置索引的列顺序,将最常用的列放在最前面。其次,使用覆盖索引,避免回表操作,提高查询效率。另外,定期对索引进行重和优化,可以减少索引的碎片和提高查询性能。 此外,还可以通过使用分区表等方式来优化索引。分区表将大表按照某一列的值进行分区,可以减少索引的大小,提高查询效率。 总而言之,数据库索引设计与优化对于保证数据库的性能和可用性至关重要。通过合理的索引设计和优化,可以提高数据库查询效率,加快数据的检索速度,提升系统的响应能力。对于大型数据库来说,优化索引非常重要,可以有效地提升系统的整体性能。 ### 回答2: 数据库索引设计与优化是一本关于数据库索引的设计与优化的专题书籍。随着数据规模的不断增大,数据库的性能优化变得越来越重要。索引是提高查询速度和数据检索效率的重要手段。 该书从索引的基础知识入手,介绍了常见的索引类型,包括B-Tree索引、哈希索引和全文索引等。并且详细介绍了索引的创、使用和维护的方法。同时,通过实际案例的分析和演示,详细说明了索引的优化技巧和策略,如选择合适的索引字段、使用联合索引和覆盖索引等。 在索引设计方面,该书提供了一些实用的指导原则。例如,在选择索引字段时,需要考虑字段频繁查询和过滤程度,选择最适合的字段作为索引。此外,还介绍了一些避免过多索引和重复索引的注意事项,以避免索引对性能的负面影响。 在索引优化方面,该书提供了一些常见的优化议。例如,可以通过适当增加缓存和调整数据库参数来提高索引的性能。此外,还介绍了如何使用索引查询计划和性能分析工具来定位和解决索引性能问题。 总的来说,数据库索引设计与优化是一本权威且实用的书籍,对于想要深入了解数据库索引原理和技术的人来说是一本不可多得的好书。无论是初学者还是有一定经验的数据库开发人员,都可以从中获得宝贵的知识和实践经验,提高数据库的查询速度和数据检索效率,优化数据库的性能。 ### 回答3: 数据库索引设计与优化是数据库系统中的重要话题,对于提高数据库查询性能有着至关重要的作用。 首先,数据库索引设计是根据业务需求和查询频率来确定哪些字段需要创索引。一般来说,经常被搜索或者作为查询条件的字段应该优先考虑创索引,例如主键、外键、频繁出现在WHERE子句中的字段等。索引还可以根据字段的区分度进行优化,选择合适的索引类型,例如B树索引、哈希索引、全文索引等。 其次,数据库索引的性能也需要进行优化。一方面,可以通过合理地设置索引的顺序来增加索引的效率。例如,可以将最常被搜索的字段放在联合索引的前面,或者将区分度高的字段放在B树索引的前面。另一方面,可以通过对索引的互补创和删除来进行优化,避免冗余和过多的索引影响数据库查询性能。 此外,还可以通过一些技巧来进一步优化数据库索引。例如,可以使用覆盖索引来避免回表操作,提高查询效率。在查询语句中尽量避免使用不等于运算符和LIKE语句,因为这些操作会导致索引失效。另外,定期进行索引的重和统计信息的更新也可以提高数据库查询性能。 总之,数据库索引设计和优化是提高数据库查询性能不可或缺的环节。通过合理地选择索引字段、设置索引顺序、优化索引类型以及使用一些技巧,可以有效地提高数据库的查询效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值