四时宝库

程序员的知识宝库

Mysql索引简介(mysql索引的使用)

所有Mysql列类型都可以被索引,对相关列使用索引时提高select操作性能的最佳途径。根据存储引擎可以定义每张表的最大索引数和最大数和最大索引长度,每种存储引擎(如MyISAM、InnoDB、BDB、MEMORY等)对每个表至少支持16索引,总索引长度至少为256。大多数存储引擎有更高的限制。

MyISAM和InnoDB存储引擎的表默认创建的都是BTREE索引。Mysql支持前缀索引,即对索引字段的前N个字符创建索引。前缀索引的长度跟存储引擎相关,对于MyISAM存储引擎的表,索引的前缀长度可以达到1000字节长,而对于InnoDB存储引擎的表,索引的前缀长度最多是767字节。前缀的限制应以字节为单位进行测量,而create table语句中的前缀长度解释为字符数。在为使用多字节字符集的列指定前缀长度时需要多加考虑。

Mysql中还支持全文本(FULLTEXT)索引,该索引可以用全文搜索。但是貌似只有MyISAM存储引擎支持FULTEXT索引,并且只限于char、varchar和text列。索引总是对整个列的,不支持局部(前缀索引)。

InnoDB不支持

InnoDB不支持

MyISAM支持

设置全文索引

也可以为空间列类型创建索引,但是只有MyISAM存储引擎支持空间类型索引,且索引的字段必须是非空的。

默认情况下,MEMORY存储引擎使用HASH索引,但也支持BTREE索引。

可以使用上面的语句创建索引,也可以使用alter table的语法来增加索引,语法与create index类似。

下面看下前缀索引。

创建前缀索引

如果是以前缀索引为条件查询时,可以看到索引city被使用。

删除索引的话直接就用drop: drop index city(表索引字段) on city(表名)

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接