MySQL索引的建立对MySQL的高效运行是很重要的。索引可以大大提高MySQL的查询速度。
比如:新华字典的目录页(索引)快速查找汉字;图书馆通过首字母可以快速定位相关书籍,加快查找速度。
索引分类
-
普通索引:key(字段1,字段2,…)
-
唯一索引:unique key(字段1,字段2,…)
-
主键索引:primary key(字段1) 只能有一个
-
全文索引:fulltext(字段1)
-
组合索引:index(字段1,字段2,…)
-
外键约束
索引功能
-
索引是应用在
MySQL
查询语句的条件(where
语句的条件) -
索引也是一张表,保存了主键和索引字段,并指向实体表的记录
索引缺点
- 虽然提高了查询速度(select),但是降低了更新表的速度(insert、update、delete)
MySQL
不仅要保存数据,还要保存索引文件;建立索引会占用磁盘空间的索引文件
普通索引
几种不同的创建方式
1 |
|
删除索引
1 |
drop index [indexname] on table_name; |
唯一索引
索引列的值必须唯一,但是允许有空值;如果是组合索引,则列值的组合必须唯一
创建索引
1 |
-- 创建索引 |
删除索引
1 |
alter table tablename drop index c' |
使用alter来创建索引
1 |
alter table tablename add primary key (column_list); -- 添加主键 |
关于fulltext
解决模糊查询问题,只支持英文;默认查询的内容有空格
- MyISAM支持全文索引
- InnoDB在MySQL5.6后开始支持全文索引
显示索引信息
使用 SHOW INDEX
命令来列出表中的相关的索引信息。可以通过添加G
来格式化输出信息
1 |
show index from table_name; G -- 格式化输出信息 |
近期评论