索引基本概述

1.什么是索引?
官方定义:一种帮助mysql提高查询效率的数据结构
优点:
1:大大加快数据查询速度
缺点:
1.维护索引需要耗费数据库资源
2.索引需要占用磁盘空间
3.当对表的数据进行增删改的时候,要维护索引,速度会受影响
因此:索引不是建得越多越好。应该是对经常查询用到的字段合理地添加索引。

2.索引的分类
a.主键索引:字段设定为主键后默认会建立一个索引,innodb为聚簇索引。不能为空。
b.单值索引:也称普通索引,一个表中可以有多个单指索引。
c.唯一索引:索引列的值必须唯一,可以为空,但只能有一个null。
d.复合索引:多个列的属性共同组成一个索引
e.全文索引(5.7版本之前 只在myisam引擎):全文引擎类型为fulltext。全文索引可以在char,varchar,text类型上创建。

3.索引的操作
主键索引 自动创建:
--建表时 主键自动创建主键索引

create table t_user(id varchar(20) primary key,name varchar(20));

查看索引:

show index from t_user

图片说明

2.单值索引:
--建表时创建 (随表建立的索引索引名与字段名相同)

create table t_user1(id varchar(20) primary key,name varchar(20),key (name));

图片说明

--建表后创建:

create index nameindex on t_user1(name);

--删除索引:

drop index 索引名 on 表名;

3.唯一索引
--建表时创建:

create table t_user2(id varchar(20) primary key,name varchar(20),unique(name));

图片说明

--建表后创建

create unique index nameindex on t_user2(name);

4.复合索引
--建表时创建:

create table t_user3(id varchar(20) primary key,name varchar(20),age int,key(name,age))

图片说明

建表后创建:

create index nameageindex on t_user3(name,key)

注意!!!!
复合索引遵守最左前缀原则;mysql引擎在查询时为了更好地使用索引,会动态调整字段顺序。
eg:目前有name age bir复合索引
bir name age能使用该索引
name age能
name bir能
bir age name能
bir age 不能

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务