一.索引定义
索引是一种独立存在的,对数据库表中一列或多列的值进行排序(目的:加快查询速度,提高效率)
数据库引擎:innodb支持索引.
show create table 表名——查看数据库索引
二.案例
索引是如何提高查询速度?
实例:
set profiling=1-- 初始化计时器
由于name没有建索引,所以使用以下sql语句执行后观察所用时间
show profiles;--查看查询的执行时间
select * from test_index where name='我的年龄12999';
create index name_index on test _index(name);
结论:索引可以提高查询速度。
三.建立索引
索引的分类
1.普通索引index:
简单排序 加速查询
2.唯一索引 unique
主键索引:primary key 加速查询+实现实体完整性约束(不能有重复,也不能是null值)
唯一索引:unique加快查询 不允许有重复值 可以空值(null值)
create unique index 索引名字 on 表名(字段(长度));
3.联合索引
primary key(id name):联合主键索引
unique(id name):联合唯一索引
index(id name):联合普通索引
4.全文索引 功能:分词
create fulltext index 索引名字 on 表名 (字段1(长度));
create fulltext index 索引名字 on 表名(字段1(长度),字段2(长度));
5.空间索引 了解 数据库索引
索引建立方式
普通索引
语法:
方法一:
create index 索引名 on 表名(字段名(长度));
方法二:
通过修改表结构来建索引
alter table 表名 add index 索引名(字段名(长度));
方法三:
create table 表名(字段名1 类型1(宽度))
……,
index 索引名(字段名(宽 度)));
唯一索引
创建唯一索引
方法一:
create unique index 索引名 on 表名(字段名(宽度));
方法二:
alter table 表名 add unique 索引名(字段名(长度));
方法三:
create table 表名(字段名1 类型1(宽度))
……,
unique 索引名(字段名(宽度)));
示例:
create table mytable(
id int not null,
username varchar(16) not null,
primary key(id)
);
删除索引
语法:
drop index 索引名 on 表名;
示例:
drop index xxhh on test_index;