索引是什么意思 优缺点有哪些

描述

  1. 索引是什么?

  索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。

  索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据。索引的实现通常使用B树及其变种B+树。更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。而且索引是一个文件,它是要占据物理空间的。

  MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。比如我们在查字典的时候,前面都有检索的拼音和偏旁、笔画等,然后找到对应字典页码,这样然后就打开字典的页数就可以知道我们要搜索的某一个key的全部值的信息了。

  2. 索引有哪些优缺点?

  索引的优点

  可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

  通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

  索引的缺点

  时间方面:创建索引和维护索引要耗费时间,具体地,当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,会降低增/改/删的执行效率;

  空间方面:索引需要占物理空间。

  3. MySQL有哪几种索引类型?

  1、从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。这里所描述的是索引存储时保存的形式,

  2、从应用层次来分:普通索引,唯一索引,复合索引。

  普通索引:即一个索引只包含单个列,一个表可以有多个单列索引

  唯一索引:索引列的值必须唯一,但允许有空值

  复合索引:多列值组成一个索引,专门用于组合搜索,其效率大于索引合并

  聚簇索引(聚集索引):并不是一种单独的索引类型,而是一种数据存储方式。具体细节取决于不同的实现,InnoDB的聚簇索引其实就是在同一个结构中保存了B-Tree索引(技术上来说是B+Tree)和数据行。

  非聚簇索引:不是聚簇索引,就是非聚簇索引

  3、根据中数据的物理顺序与键值的逻辑(索引)顺序关系:聚集索引,非聚集索引。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分