Java面试题之索引

1.索引的概述

        1.索引是一个单独的、存储在磁盘上的数据库结构,包含着对数据表里所有记录的引用指针,使用索引可以快速找出在某个或多个列中有一特定值的行,所有MySQL列类型都可以被索引,对相关列使用索引是提高查询操作速度的最佳途径。

        2.索引是在存储引擎中实现的,因此每种存储引擎的索引并不一定完全相同,并且每种存储索引也不一定支持所有索引类型,MySQL中索引的存储类型有两种,即BTREE和HASH,具体和表的存储引擎有关。MyISAM和InnoDB存储引擎只支持BTREE索引;MEMORY/HEAP存储引擎可以支持HASH和BTREE索引。


2.索引的优点

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

        2.可以大大加块数据的查询速度,这也是创建索引的主要原因

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

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


3.索引的缺点

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

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

        3.当对表中的数据进行增加,删除和修改的时候,索引也要动态地维护,这样就降低了数据的维护速度

        

你可能感兴趣的:(java,数据库,开发语言)