计算机中索引是什么意思(交叉索引是什么意思)

lxf2023-12-03 23:20:01

什么是索引?

MySQL官方对索引的定义是:索引是帮助MySQL高效获取数据的数据结构。我们可以简单的理解为:能够快速找出顺序的数据结构。Mysql索引主要有两种结构:B+树索引和Hash索引。除非特别说明,我们通常所说的索引一般是指B树结构组织的索引(B+树索引)。

索引的类型

索引有很多种类型,比如hash、BTREE、全文索引等。其实不管什么类型,都是在特定的业务场景下,方便快捷的查找数据的算法。

比如哈希索引,键值形式,最简单的,书的目录也差不多。

如果有一本书,我们知道文章的标题来找到这篇文章阅读。如果没有目录,我们就得翻遍整本书才能找到标题。

但如果把标题单独提取出来作为键,页码作为值,就能很快找到内容。

很明显,一本书开头的目录要占好几页,建立索引也要消耗资源。

BTREE索引是另一种算法,在不同的业务场景下使用对应的索引效率更高。

就像新华字典的目录不同于普通的图书目录一样,新华字典可以通过拼音或部首查询快速找到单词在哪一页,这也是一种“索引”

还有全文索引,这里不做描述。比如solr和elasticsearch使用的算法都可以研究。

索引概念

索引的本质:索引是数据库表中某个字段的值的副本,这个值称为索引的关键字。

索引也是一个表,它保存主键和索引字段,并指向实体表的记录。

索引往往是通过复杂的数据结构来实现的(双向链表、B+树/B树、hash)。

MyISAM存储引擎的表支持主索引,InnoDB存储引擎的表支持聚集索引(主索引)和非聚集索引(辅助索引)的最佳使用。

索引的优点和缺点

@优点:

MySQL索引的建立对于MySQL的高效运行非常重要,可以大大提高MySQL的检索速度。

通过对单词进行分组和排序的数据检索可以减少查询时间中分组和排序所消耗的时间(数据库中的记录将被重新排序)

表连接的连接条件可以加速表之间的直接连接。

@缺点:

但是过度使用索引会导致索引滥用,提高检索速度,减缓表的更新速度。

比如在添加、删除、修改一个表的时候,MySQL不仅要保存数据,还要保存索引文件,这样会占用disk 空之间的索引文件。

创建和维护索引需要时间,随着数据量的增加,时间会增加。

以上是mysql索引是什么意思的细节。更多信息请关注AdminJS.cn其他相关文章!

adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!