隐式索引 最明显的一个做用相似 索引回收站。例如数据库长时间运行后,会积累不少索引,作数据库优化时,想清理掉没什么用的多余的索引,但可能删除某个索引后,数据库性能降低了,发现这个索引是有用的,就要从新创建。对于较大的表来讲,删除、重建索引的成本是很高的,若是在清理索引时能先放入回收站,确认没影响后再完全删除,有影响的话就恢复回来,这样就方便多了,把索引设置为 隐藏/显示 就能够实现这个需求。索引的隐藏不影响索引维护,主键上不支持该特性
例如:
CREATE TABLE user
(user_id
int(11) NOT NULL DEFAULT '0',user_name
varchar(20) DEFAULT NULL,user_sex
varchar(2) DEFAULT NULL,user_old
smallint(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
插入3716414 条数据,
在user_name上建立索引
CREATE INDEX name_index ON test.user
(user_name);
相比较而言快了好多倍
当咱们不能决定是否要使用这个索引时能够把这个user_index 暂时禁掉
ALTER TABLE test.user
ALTER INDEX name_index INVISIBLE;
进行查看
启用时
ALTER TABLE test.user
ALTER INDEX name_index VISIBLE;
当不须要这个索引时,能够删除
DROP INDEX name_index on test.user
;数据库