码迷,mamicode.com
首页 > 数据库 > 详细

数据库索引

时间:2019-10-01 09:33:01      阅读:102      评论:0      收藏:0      [点我收藏+]

标签:分类   生成   结构   b树   最大   创建索引   使用   指针   asc   

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

      索引是与表或视图关联的独立的、物理的数据库结构,可以加快从表或视图中检索行的速度。索引包含由表或视图中的一列或多列生成的键。这些键存储在一个结构(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 指定升序或者降序的索引值存储。

数据库索引

标签:分类   生成   结构   b树   最大   创建索引   使用   指针   asc   

原文地址:https://www.cnblogs.com/hzxxfx/p/11614551.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!