MySql 索引使用总结-基础篇

2022-01-05  本文已影响0人  编程人生

Mysql索引

一.索引概述

简单的说,索引就是对某表中一列或若干列值进行排序的结构.它由该表的一列或者多列的值,以及指向这些列对应存储位置的指针构成.

索引是依赖表建立的,一个表有两部分组成:一部分用来存放表的数据页面,另一部分存放索引页面.由于索引页面比数据页面小的多,在进行数据检索时,系统会先搜索索引页面,从中找到所需数据指针,再通过指针从数据页面中读取数据.这种操作模式类似于图书的目录.

索引的作用

1.使用索引可以明显的提高数据查询的速度.

2.通过对多个字段使用唯一索引,可以保证多个字段的唯一性.

3.在表与表之间连接查询时,如果创建了索引,就可以提高表与表之间的连接速度

4.索引的创建,即有利也有弊,在创建索引时需要权衡利和弊

适合被创建索引的情况

1.经常被查询的字段

2.分组字段

3.主键和外键字段.

4.需要设置唯一性约束的字段.

不适和创建索引的情况

1.在查询中很好用到的字段

2.具有重复值的字段

3.较小的数据表,这种情况使用索引并不能改善任何索引性能.

另外,过多的创建索引,还会占用许多的磁盘空间.

索引的操作

1.创建普通索引

普通索引:就是在创建索引时,不附加任何限制条件,如唯一,非空等,这种类型的索引可以创建在任何数据类型的字段上.

Create table 表名

(列名 数据类型....

INDEX|KEY 索引名(列名i[长度][ASC|DESC])

);

2.在已经存在的表上创建普通索引

Create INDEX 索引名

on 表名 (列名[长度][ASC|DESC])

3.通过ALTER TABLE 语句创建普通索引

ALTER TABLE 表名

ADD INDEX|KEY 索引名(列名[长度][ASC|DESC]);

创建唯一索引

唯一索引和普通索引类似,但唯一索引要求索引的值是唯一的,需要使用关键字UNIQUE标明

创建唯一索引与创建普通索引一样也有三种方式.

一.建表时创建唯一索引,语法规则:

Create table 表名

(

列名 数据类,....

UNIQUE INDEX|KEY 索引名 (列名 i [长度][ASC|DESC]);

);

二.是在已经存在的表上创建唯一索引,语法规则:

Create UNIQUE INDEX 索引名

on 表名(列名[长度][ASC|DESC]);

三.通过ALTER TABLE 语句创建唯一索引,语法规则:

ALTER TABLE 表名

ADD UNIQUE INDEX|KEY 索引名(列名[长度][ASC|DESC]);

创建主键索引

ALTER TABLE 表名

ADD PRIMARY KEY(列名);

创建全文索引

在MySQl 中,提供了一种称为全文索引的技术,主要关联在数据类型为CHAR Varchar 和Text 等的长度字符字段上.

1.创建表时创建全文索引

CREATE TABLE 表名

(

列名 数据类型 ,.....

FULLTEXT INDEX|KEY 索引名 (列名i[长度][ASC|DESC])

);

创建全文索引比普通索引多了一个关键字 FULLTEXT

2.在已经存在的表上创建全文索引

3.通过ALTER Table 语句创建全文索引sql

创建多列索引

1.创建表时创建多列索引

CREATE table 表名

(

列名 数据类型 , .....

INDEX|KEY (列名i[长度][ASC|DESC],列名i[长度][ASC0][DESC],.......)

);

2.在已经存在的表上创建多列索引

语法规则:

CREATE INDEX 索引名

on 表名 (列名 1[长度][ASC|DESC],列名 1[长度][ASC|DESC],....);

3.通过ALTER Table 语句创建多列索引

语法规则:

ALTER TABLE 表名

ADD INDEX|KEY 索引名(列名[长度][ASC|DESC],列名[长度][ASC|DESC],......);

删除索引

DROP INDEX 索引名 on 表名;

上一篇 下一篇

猜你喜欢

热点阅读