mysql数据库

mysql中的索引

2021-07-08  本文已影响0人  Geroge1226

1、说明

定义:索引是创建在表上,对数据库一列或多列组合的值进行排序的一种结构,主要是提高对表中的数据的查询速度。
【类比】
数据表类比新华字典,索引好比新华字典中的音序,如果没有音序查找数据要全量查询400多页,如果有音序只需要先遍历10几页音序直接查找,这样提高了查询速度,索引功能类似。

2、索引存储

索引从存储结构上来划分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。

2.1 索引优缺点

3、索引的分类

4、索引设计原则

(1)选择唯一性索引
(2)为经常要排序,分组和联合操作的字段建立索引
(3)为经常做为查询条件的字段建立索引
(4)限制索引的数量
(5) 尽量使用数据量少的字段建立索引
(6)删除不再使用和使用量较少的索引

5、索引操作

5.1、 索引创建

(1)建表时候创建索引

CREATE TABLE 表名( 属性名  数据类型 [完整的约束条件],
                  属性名  数据类型 [完整的约束条件],
                  ....
                 [UNIQUE | FULLTEXT | SPATIAL]  INDEX | KEY   别名 (属性名  [(长度)]  [ASC | DESC])
);

【例子】

create table aa( id int(10) not null primary key,
code varchar(20) not null ,
name varhcar(20) not null,
index (id) 
);

(2)已经存在表索引

create [UNIQUE | FULLTEXT | SPATIAL] index 索引名  
on 表名(属性名 [(长度)]  [ASC | DESC]);
alter table 表名 add [UNIQUE | FULLTEXT | SPATIAL] index 索引名  
on 表名(属性名 [(长度)]  [ASC | DESC]);
5.2、索引的删除
drop index  on 表名;
5.3、禁用/开启 索引

有时候我们会在批量导入(插入)数据时候由于索引会影响到数据插入速度,需要临时禁用,等数据导入完毕之后在开启索引。

alter table  表名 disable keys;
alter table 表名 enable keys;

6、查询索引失效

上一篇 下一篇

猜你喜欢

热点阅读