RDS MySQL引擎表索引方式更改为Hash无效,是什么原因?
MySQL包含的索引方式主要包括Btree、Hash、FullText和Rtree,经常使用的主要是Btree和Hash两种。通过DMS登录RDS实例后,执行DDL语句可以在InnoDB引擎表上创建Hash方式的索引,SQL语句如下。
drop table if exists auth_order;
create table auth_order (
id smallint not null comment '主键',
member_id varchar(30) not null comment '会员id',
name varchar(100) not null comment '名称',
primary key (id),
key auth_mem_name (member_id) using hash
) engine=innodb default charset=utf8 comment='会员信息';
系统显示类似如下。
可以看到该表中的索引是Hash方式,但是在DMS中查看表结构的时候发现该索引的方式是BTREE。
由于MySQL的InnoDB引擎不支持Hash索引,而MySQL服务层是有Hash索引选项的,因此建表语句可以使用子句using hash,而实际创建的索引类型仍然是Btree方式的索引。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。