01-索引介绍、划分、基本使用

索引简介

  1. 帮助 Mysql 高效获取数据
  2. 加快数据检索速度,快速定位到想要数据。
  3. 索引的常用数据结构:B + 树和 Hash
  4. 合适的数据结构一定程度上决定了数据的读取速度(eg: ArrayList 和 LinkedList 的遍历)

索引划分

  • 主键索引
  • 普通索引
  • 唯一索引
  • 前缀索引
  • 组合索引

主键索引

索引列必须唯一,且不为空。

alter table table_name add primary key (column_name);

普通索引

Mysql 中基本索引类型,没有什么限制,可以为空、重复。

alter table table_name add index index_name(column_name);

唯一索引

索引列必须唯一,可以为空。

create unique index index_name on table(column_name);

全文索引

只能在文本类型(char, varchar, text)字段上创建索引。 MylASM 和 InnoDB 引擎都支持。

-- 通过创建表时创建全文索引
create table `user`(
	`id` int(11) not null auto_increment,
	`name` varchar(32),
	`address` varchar(200),
	`age` int(5),
	`phone` int(11),
	primary key (`id`),
	fulltext key `index_address`(`address`)
) engine = innoDB default charset = utf8;

-- 单独创建索引
alter table 'table_name' add fulltext key `index_address`(`address`);

前缀索引

一般用于文本类型字段上创建索引。

alter table table_name add index_name (column_name(length));

组合索引

重点,生产环境和面试中高频出现。
使用 2 个或 2 个以上的字段作为索引。

alter table table_name add index index_name(column_name1, column_name2); 

你可能感兴趣的:(Mysql,java,开发语言)