索引
Mysql官方对索引的定义为:索引是帮助Mysql高效获取数据的数据结构。
索引的分类
在一个表中,主键索引只有一个,唯一索引可以有多个。
主键索引 (PRIMARY key)
唯一标识,主键不可重复,只能有一个列作为主键
唯一索引(UNIQUE KEY)
避免重复的列出现,唯一索引可以重复,多个列都可以标识为唯一索引
常规索引(KEY/INDEX)
默认的,index / key 来设置
全文索引(FULLText)
在特定的数据库引擎下才有,快速定位数据。
基础语法:
索引的使用
– 1.在创建表的时候给字段增加索引
– 2.创建完毕后增加索引
– 显示索引信息
SHOW INDEX FROM student
– 增加一个索引 (索引名) 列名
ALTER TABLE school.student ADD FULLTEXT INDEX stuname
(stuname
);
– explain 分析sql执行的状况
EXPLAIN SELECT * FROM student;
– 增加索引 索引名:id_表名_字段名
– CREATE INDEX 索引名on 表(字段)
CREATE INDEX id_app_username ON app(‘name’)
索引在小数据量时,用处不大,但在大量数据前,区别明显
索引原则
索引不是越多越好
不要对进程变动的数据加索引
小数据量的表不需要加索引
索引一般加在常用来查询的字段上~
索引的数据结构
Hash 类型的索引
Btree : InnoDB 的默认的数据结构