Mysql高级第一天(1)
索引分类:
一、索引的分类:
- B-tree索引:最常见的索引类型,大部分引擎都支持B树索引;
- Hash类型:只有Memory引擎支持,使用场景最简单;
- R-tree索引:空间索引,属于MyISAM的一种特殊索引类型,主要用于地理空间的数据类型,通常使用较少;
- Full-text索引:全文索引,也是MyISAM的一种特殊索引类型,主要用于全文索引,InnoDB从MySQL 5.6版本开始支持全文索引。
二、三种引擎对索引的支持情况:
MyISAM | InnoDB | Memory | |
B-tree | 支持 | 支持 | 支持 |
Hash | 不支持 | 不支持 | 支持 |
R-tree | 支持 | 不支持 | 不支持 |
Full-text | 支持 | Mysql5.6版本开始支持 | 不支持 |
三、索引分类:
单值索引:即一个索引只包含一个列,一张表可以有多个索引;
复合索引:即一个索引可以包含多个列;
唯一索引:即索引包含的列值必须唯一,但允许有空值。
四、索引语法:
1、创建:
create index idx_name on table_name('col_list');
2、查看:
show index from table_name;
3、删除:
drop index idx_name on table_name;
4、添加:
(1)主键索引:
alter table table_name add primary key ('col_list');
(2)唯一索引:
alter table table_name add unique idx_name('col_list');
(3)普通索引:
alter table table_name add index idx_name ('col_list');
(4)全文索引:
alter table table_name add fulltext idx_name ('col_list');