索引的操作

索引是一种有效组合数据的方式。通过索引,可以快速快速查询到数据库表对象中的特定记录,是一种提供性能的常用方式

1、关于索引

使用索引可以提高从表中检索数据的速度,索引由表中的一个字段和多个字段生成的键组成。

索引按存储类型可分为:B型树索引(BTREE)和哈希索引。

MySQL支持6种索引,分别为普通索引、唯一索引、全文索引、单列索引、多列索引、空间索引。

过多的索引会占据大量的磁盘空间。

一下情况适合创建索引:

  • 经常被查询的字段,即在WHERE子句中经常出现的字段
  • 在分组的字段,即在GROUP BY子句中出现的字段
  • 存在依赖关系的子表和父表之间的联合查询,即主键或外键字段
  • 设置唯一完整性约束的字段

2、创建表时创建普通索引

普通索引:在创建索引时,不附加任何限制条件(唯一,非空等限制),该类型的索引可以创建在任何数据类型的字段上。

语法形式:

create table table_name(

  属性名 数据类型,

  ……

  index|key [索引名](属性名1 [长度] [ASC|DESC])

3、在已经存在的表上创建普通索引

语法形式:

create index 索引名 on table_name (属性名 [长度] [ASC|DESC]);

4、通过SQL中语句alter table创建普通索引

语法形式:

alter table table_name add index|key 索引名(属性名 [长度]  [ASC|DESC]);

5、创建表时创建唯一索引

唯一索引:在创建索引时,限制索引的值必须是唯一的。

在MySQL中,根据索引的创建方式,分为手动索引和自动索引两种。

自动索引,是指在数据库表里设置完整性约束时,该表会被系统自动创建索引。手动索引,是指手动在表上创建索引。当设置表的某个字段为主键或唯一完整性约束时,系统就会自动创建关联该字段的唯一索引。

语法形式:

create table table_name(

  属性名 数据类型,

  ……

  unique index|key [索引名](属性名1 [长度] [ASC|DESC])

);

6、在已经存在的表上创建唯一索引

语法形式:

create unique index 索引名 on table_name (属性名 [长度] [ASC|DESC]);

7、通过SQL语句alter table创建唯一索引

语法形式:

alter table table_name add unique index|key 索引名(属性名 [长度] [ASC|DESC]);

8、删除索引

删除索引即删除表中已存在的索引。之所以要删除索引,是由于这些索引会降低更新速度,影响数据库的性能。

语法形式:

drop index 索引名 on table_name;

原文地址:https://www.cnblogs.com/alphajuns/p/9874898.html