索引概述
所有MySQL列类型都可以被索引,对相关列使用索引是提高SELECT操作性能的最佳途径。
存储引擎默认支持的索引(B-Tree索引)
MyISAM和InnoDB存储引擎的表默认创建的都是BTREE(多路搜索树)索引。
MySQL支持的两种索引
- (Hash索引)
- (B-Tree索引)
MyISAM和InnoDB都只
支持B-Tree索引,
MEMOEY/HEAP引擎可以支持Hash索引。
MySQL不支持函数索引
- MySQL不支持函数索引,但是能对列的前面某一部分进行索引,称之为前缀索引。
例如name字段,可以只取name的前4个字符进行索引,这个特性可以大大缩小索引文件的大小,用户在设计表结构的时候也可以对文本列根据此特性进行灵活设计。
多列索引
- 对于创建的多列索引,只要查询条件使用到了多列索引中最左边的列,索引一般都会被使用,如果查询条件没有使用最左边的列,这时索引一般不会被使用。这就是索引的前缀特性。即使查询条件不齐全,只要使用了左边的列,那么索引一般会被使用。
- 使用like时,当%在第一位将不会使用索引,不在第一位将使用索引,。
- 对于大文本使用全文索引。
-
如果列名是索引,column_name is null将使用索引。
MySQL索引创建语法
-
一、使用ALTER TABLE语句
-
二、使用CREATE INDEX语句
-
三、删除索引