mysql索引

一、索引概念

索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据。

索引是一个单独的、存储在磁盘上的数据库结构 ,包含着对数据表里 所有记录的引用指针。

二、索引分类

(1)逻辑区分

1、普通索引

普通索引是 MySQL 中最基本的索引类型,它没有任何限制,唯一任务就是加快系统对数据的访问速度。普通索引允许在定义索引的列中插入重复值和空值。

2、唯一索引

唯一索引与普通索引类似,不同的是创建唯一性索引的目的不是为了提高访问速度,而是为了避免数据出现重复。

唯一索引列的值必须唯一,允许有空值。如果是组合索引,则列值的组合必须唯一。

创建唯一索引通常使用 UNIQUE 关键字。

3、主键索引

主键索引就是专门为主键字段创建的索引;

主键索引是一种特殊的唯一索引,不允许值重复或者值为空;

创建主键索引通常使用 PRIMARY KEY 关键字。不能使用 CREATE INDEX 语句创建主键索引。

4、空间索引

空间索引是对空间数据类型的字段建立的索引,使用 SPATIAL 关键字进行扩展。

创建空间索引的列必须将其声明为 NOT NULL,空间索引只能在存储引擎为 MyISAM 的表中创建。

空间索引主要用于地理空间数据类型 GEOMETRY

5、全文索引

全文索引主要用来查找文本中的关键字,只能在 CHAR、VARCHAR 或 TEXT 类型的列上创建。在 MySQL 中只有 MyISAM 存储引擎支持全文索引。

全文索引允许在索引列中插入重复值和空值。

不过对于大容量的数据表,生成全文索引非常消耗时间和硬盘空间。

创建全文索引使用 FULLTEXT 关键字。

(2)实际使用区分

1、单列索引

普通索引:MySQL中基本索引类型,没有什么限制,允许在定义索引的列中插入重复值和空值,纯粹为了查询数据更快一 点。

唯一索引:索引列中的值必须是唯一的,但是允许为空值。

主键索引:是一种特殊的唯一索引,不允许有空值。(主键约束,就是一个主键索引)。

2、组合索引

在表中的多个字段组合上创建的索引,只有在查询条件中使用了这些字段的左边字段时,索引才会被使用,使用组合索引时遵循最左前缀集合。

3、全文索引

全文索引,只有在MyISAM引擎上才能使用,只能在CHAR,VARCHAR,TEXT类型字段上使用全文索引,介绍了要求,说说什么是全文索引,就是在一堆文字中,通过其中的某个关键字等,就能找到该字段所属的记录行。

三、索引操作语句

exp_name为索引的名字

1、在创建数据表时添加普通索引SQL语句示例如下:

create table exp(id int , name varchar(20),index exp_name(name));
或者是把index换成key,如下:
create table exp (id ,int , name varahcr (20) ,  key exp_name(name));

 2、创建数据表后向表内新添加普通索引SQL语句示例如下:

alter table exp add index exp_id(id);

3、创建数据表后删除普通索引的SQL语句示例如下:

alter table drop index exp_name;

4、查询表中的索引,exp为biao'ming

show index table exp;

你可能感兴趣的:(MySQL,mysql,数据库)