面试常问——MySQL索引01(概述)

面试常问——MySQL索引01(概述)

一、什么是索引?

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

索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的数据结构,以协助快速查询、更新数据库表中数据;索引的实现通常使用B树及其变种B+树。

更通俗的说,索引就相当于目录。为了方便查找书中的内容,通过对内容建立索引形成目录。索引是一个文件,它是要占据物理空间的。

二、索引有哪些优缺点?

索引的优点

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

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

索引的缺点

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

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

三、索引有哪几种类型?

  1. 主键索引: 数据列不允许重复,不允许为NULL,一个表只能有一个主键。

  2. 唯一索引: 数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引。

可以通过 ALTER TABLE table_name ADD UNIQUE (column); 创建普通索引。

可以通过 ALTER TABLE table_name ADD UNIQUE (column1,column2), 创建唯一组合索引。

  1. 普通索引: 基本的索引类型,没有唯一性的限制,允许为NULL值。

可以通过ALTER TABLE table_name ADD INDEX index_name (column),创建普通索引。

可以通过ALTER TABLE table_name ADD INDEX index_name(column1, column2, column3),创建组合索引。

  1. 全文索引:是目前搜索引擎使用的一种关键技术。

可以通过ALTER TABLE table_name ADD FULLTEXT (column),创建全文索引。

猜你喜欢

转载自blog.csdn.net/qq_37924905/article/details/108635081