MySQL索引
索引说明:
1.索引在mysql中也叫键,用于数据库引擎快速找到记录的一种数据结构。它能够让数据库的查询速度提升很多个量级,特别是在数据量越来越大的时候,索引对性能的影响就越大
2.索引优化是查询性能优化最有效的手段
缺点:
创建索引非常消耗时间和空间
普通索引
create table student(
id int primary key auto_increment,
name varchar(20),
age int,
index (name) # 为 name 这个字段创建索引,索引名默认名为 字段的名字
index user_name(name) # 为 name 这个字段创建索引,索引名为 user_name
key (name) # 与 index 一样
key user_name(name) 作用与 index 一样
)engine=InnoDB default charset=utf8;
唯一索引:
说明:就是索引名字不能有重复
create table student(
id int primary key auto_increment,
name varchar(20),
age int,
unique index user_name(name) # 为 name 这个字段创建了名为 user_name 的索引,另外,其他字段的索引名不能与这个字段有重复,否则报错
)engine=InnoDB default charset=utf8;
多列索引:
create table student(
id int primary key auto_increment,
name varchar(20),
age int,
index user_age(name,age) # name 列和 age 列 共用一个索引 user_age
)engine=InnoDB default charset=utf8;
#多列索引相对于单列来说,查询效率比单列低,但比单列省时间和空间
全局索引:
create table student(
id int primary key auto_increment,
name varchar(20),
age int,
fulltext index user_name(name)
)engine=InnoDB default charset=utf8;