数据库索引

Posted hzxxfx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库索引相关的知识,希望对你有一定的参考价值。

      索引,对数据库表中一列或多列的值进行排序的一种结构,使用索引可提高数据库中待定数据的查询速度。

      索引是与表或视图关联的独立的、物理的数据库结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(B树)中,以便mysql可以快速有效的查找与键值关联的行(部分MySQL中的数据库引擎还可以支持hash结构)

     索引的作用就是为了提高数据库从表中或视图中查询数据的速度,改善数据库性能,如同书的目录一样。一般来说,目录所占的页数比书的内容少,而索引也需要储存的空间,被存放索引的空间在数据库中成为索引页。索引页是数据库中储存索引的数据页,存放键值以及指向数据位置的指针。

    索引的特点:

           1. 通过创建唯一索引,可以保证数据库表中的每一行数据的唯一性。

   2. 可以大大加快数据的查询速度。

   3. 在实现数据的引用完整性方面,可以加速表和表之间的连接。

   4. 在使用分组和排序进行查询数据时,也可以显著的减少查询中分组和排序的时间。

   索引的缺点:

   1. 创建索引和维护索引需要时间,并且随着数据量的增加所耗费的时间也会增加。

   2. 索引需要占用磁盘空间,除了数据表占数据空间外,每一个索引还要占一定的物理空间(innoDB 数据表上的索引是表空间的一个组成部分),如果有大量的索引,索引文件可能比数据文件更快达到最大文件尺寸。

   3. 当对表中数据进行 增加/删除/修改 等操作时,索引也会动态维护,这样就降低了数据库的维护速度。

    索引分类:1.普通索引  2.唯一索引  3.主键索引  4. 组合索引  5.全文索引  6.空间索引

        创建表时添加索引

         create table 表名 (

                  属性名 数据类型 【完整性约束条件】,

                  属性名 数据类型 【完整性约束条件】,

                  ......

                  属性名 数据类型 【UNIQUE/FULLTET/SPATIAL】INDEX/KEY

                  (属性名 1 【(长度)】【asc/desc】)

                  );

  UNIQUE/FULLTET/SPATIAL为可选参数,分别表示唯一索引,全文索引和空间索引;INDEX/KEY为同义词,两者作用相同,用来指定创建索引;asc/desc 指定升序或者降序的索引值存储。

以上是关于数据库索引的主要内容,如果未能解决你的问题,请参考以下文章

数据库表索引:普通索引唯一性索引全文索引多列索引隐藏索引删除索引

数据库索引有哪几种?怎样建立索引?

数据库基础:讲解MySQL索引的概念及数据库索引的应用[2]

Pandas中xs()函数索引复合索引数据的不同切面数据(索引复合索引中需要的数据):索引列复合索引中的一个切面索引行复合索引中的一个切面

达梦数据库索引实践

数据库怎样创建一个唯一聚集索引