隱式索引 最明顯的一個做用相似 索引回收站。例如數據庫長時間運行後,會積累不少索引,作數據庫優化時,想清理掉沒什麼用的多餘的索引,但可能刪除某個索引後,數據庫性能降低了,發現這個索引是有用的,就要從新創建。對於較大的表來講,刪除、重建索引的成本是很高的,若是在清理索引時能先放入回收站,確認沒影響後再完全刪除,有影響的話就恢復回來,這樣就方便多了,把索引設置爲 隱藏/顯示 就能夠實現這個需求。索引的隱藏不影響索引維護,主鍵上不支持該特性
例如:
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
;數據庫