(2.8)Mysql之SQL基础——索引的分类与使用

Posted 郭大侠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(2.8)Mysql之SQL基础——索引的分类与使用相关的知识,希望对你有一定的参考价值。

(2.8)mysql之SQL基础——索引的分类与使用

 

按逻辑分类:

1、主键索引(聚集索引)(也是唯一索引,不允许有空值)

2、普通索引或单列索引

3、多列索引(复合索引)

4、唯一索引或非唯一索引(非唯一索引其实就是普通/多列索引)

5、空间索引

6、创建索引的基本形式

7、索引的操作

1.查看索引
2.创建单列索引
3.复合索引
4.唯一索引(允许多个空值,每列唯一)
5.主键索引(不允许空值,唯一)
6.索引的删除
7.删除自增auto_increment

 

6.创建索引的基本形式

create [unique|fulltext|spatial] index index_name

[index_type]

  on table_name(index_col_name,...)

[index_option]

[alogorithm_option | lock_option]...

index_colname:

  col_name[(length)][asc | desc]

1.
[unique|fulltext|spatial] 可选参数,分别是唯一索引、全文索引、空间索引
2.index 创建索引的关键字,或者也可以用(key)
3.index_col_name 表中要创建索引的列对象
4.index_name 创建的索引名字
5.length 可选参数,索引的长度,只能用于字符串
6.[asc | desc] 索引值得存储方式

最简单最常用的方式:
  create index 索引名 on 表名(列名);
  create index ix_test101_id on test101(id);
  create index ix_test101_name on test101(name(10)); #截取该字段前10个字符作为索引
  alter table test101 add index 索引名(列名);

 

7、索引的操作

0.建表时创建索引

  
create table test102(
id int primary key auto_increment,
name varchar(12),
description varchar(200),
index ix_test102_description(description)
);

1.查看索引   show index from table_name; 2.单列索引   create index 索引名 on 表名(列名);   create index ix_test101_id on test101(id);   create index ix_test101_name on test101(name(10)); #截取该字段前10个字符作为索引   alter table test101 add index 索引名(列名); 3.复合索引   create index 索引名 on 表名(列名1,列名2);   alter table test101 add index 索引名(列名1,列名2); 4.唯一索引(允许多个空值,每列唯一)
  create unique index 索引名 on 表名(列名);
  alter table test101 add unique index 索引名(列名);
5.主键索引(不允许空值,唯一)
  alter table test101 add primary key (列名)
  
6.索引的删除   1).单列/多列/唯一索引删除:drop index 索引名 on 表名; or alter table test101 drop
  2).主键索引删除: alter table test101 drop primary key;(如果有自增字段,需要先删除自增)

7.删除自增auto_increment
  alter table test101 change id int;

 






































以上是关于(2.8)Mysql之SQL基础——索引的分类与使用的主要内容,如果未能解决你的问题,请参考以下文章

Mysql索引优化之索引的分类

MySQL之SQL优化详解

MySQL进阶之SQL优化

着重基础之—MySql 不能遗忘的索引操作

MySQL基础

MySQL基础