美文网首页
数据库索引

数据库索引

作者: 乐百事52淑熙 | 来源:发表于2018-05-10 20:56 被阅读0次

索引是什么:

索引就像是书的目录,是与表或视图关联的磁盘上结构,可以加快从表或视图中检索行的速度。

为什么建立索引?

①  建立索引的列可以保证行的唯一性,生成唯一的rowId

②  建立索引可以有效缩短数据的检索时间

③  建立索引可以加快表与表之间的连接

④  为用来排序或者是分组的字段添加索引可以加快分组和排序顺序

建立索引又有哪些缺点呢?

①  创建索引和维护索引需要时间成本,这个成本随着数据量的增加而加大

②  创建索引和维护索引需要空间成本,每一条索引都要占据数据库的物理存储空间,数据量越大,占用空间也越大(数据表占据的是数据库的数据空间)

③  会降低表的增删改的效率,因为每次增删改索引需要进行动态维护,导致时间变长

什么情况下需要建立索引?

①总的来说就是数据量大的,经常进行查询操作的表要建立索引

②表中字段建立索引应该遵循几个原则:

1)越小的数据类型通常更好:越小的数据类型通常在磁盘、内存中都需要更少的空间,处理起来更快。

2)简单的数据类型更好:整型数据比起字符,处理开销更小,因为字符串的比较更复杂,处理起来也更耗时。

3)尽量避免NULL:应该指定列为NOT NULL。含有空值的列很难进行查询优化,因为它们使得索引、索引的统计信息以及比较运算更加复杂。你应该用0、一个特殊的值或者一个空串代替空值。

4)对非唯一的字段,例如“性别”这种大量重复值的字段,增加索引也没有什么意义,所以索引的建立应当更多的选取唯一性更高的字段。

③表与表连接用于多表联合查询的约束条件的字段应当建立索引

④用于排序的字段可以添加索引,用于分组的字段应当视情况看是否需要添加索引。

⑤添加多列索引的时候,对应的多条件查询可以触发该索引的同时,索引最左侧的列的单条件查询也可以触发。

⑥如果有些表注定只会进行查询所有,也就没必要添加索引,因为查询全部只能进行全量搜索即扫描全表。

索引的类型有哪些?

oracle:

逻辑上:

Single column 单列索引:索引只有一列

Concatenated 多列索引:多列构成的索引

Unique 唯一索引:不重复的数据列才能构建唯一索引(可以为null)

NonUnique 非唯一索引:数据列可以重复

Function-based函数索引:为了避免由于在条件匹配时引入函数,导致执行计划不再使用索引,oracle提供了基于函数的索引,进而解决上述问题,提高访问效率。

Domain 域索引:建立的Oracle Text索引就是域索引

物理上:

Partitioned 分区索引

NonPartitioned 非分区索引

B-tree:

Normal 正常型B树

Rever Key 反转型B树

Bitmap 位图索引

索引的结构:

B-树:

个人公号:【排骨肉段】,可以关注一下。

相关文章

  • 数据库索引记录

    本文用来记录数据库索引相关内容; 1】数据库索引分为单列索引,组合索引,全文索引,空间索引 2】单列索引:只有一个...

  • 索引,序列,视图

    1、数据库索引索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引。在数据库中索引可以减少数据库程序查询结果...

  • Sql索引优化—转载

    数据库索引使用方式 使用索引是提高数据库查询效率的主要方式,下面从索引结构,索引类型,索引操作,命中索引几个方面来...

  • 数据库 - 索引

    索引 索引 索引的建立对于数据库的高效运行是很重要的。索引可以大大提高数据库的检索速度。 索引分单列索引,组合索引...

  • [Mysql]Mysql索引实现原理及相关优化策略

    数据库索引 数据库索引是什么? A database index is a data structure that...

  • 数据库索引定义和类型

    数据库索引类型及实现方式 1、索引定义 数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引是对数据库表...

  • 数据库索引结构总结

    [TOC] 参考 数据库索引数据结构总结 本文摘抄自数据库索引数据结构总结 1. 摘要 数据库索引是数据库中最重要...

  • MySQL 索引

    MySQL 索引 数据库索引的原理:数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表...

  • 『数据库』索引的工作原理

    数据库索引能够提高数据库的查询效率,那么索引到底是什么。 什么是索引 索引本身这个名字已经能回答这个问题了,索引就...

  • PostgreSQL基础知识--索引

    索引是增强数据库性能的常用方法。索引使得数据库在查找和检索数据库的特定行的时候比没有索引快得多。但索引页增加了整个...

网友评论

      本文标题:数据库索引

      本文链接:https://www.haomeiwen.com/subject/foellftx.html