隐式索引 最明显的一个作用类似 索引回收站。例如数据库长时间运行后,会积累很多索引,做数据库优化时,想清理掉没什么用的多余的索引,但可能删除某个索引后,数据库性能下降了,发现这个索引是有用的,就要重新建立。对于较大的表来说,删除、重建索引的成本是很高的,如果在清理索引时能先放入回收站,确认没影响后再彻底删除,有影响的话就恢复回来,这样就方便多了,把索引设置为 隐藏/显示 就可以实现这个需求。索引的隐藏不影响索引维护,主键上不支持该特性 例如: 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;