# 不可见索引

+ `Invisible Indexes`: 不会被查询优化器使用
+ "不可见" 是仅仅对优化器而言的, 不可见索引仍然可以被修改或删除
+ 即使用 SQL Hint 强制使用索引, 优化器也无法使用不可见索引
+ 不允许将主键索引设为不可见
+ `ALTER INDEX` 语句用于修改索引的可见性, 可以将索引设置为 Visible 或者 Invisible
```
CREATE TABLE t1 (c1 INT, c2 INT, UNIQUE(c2));
CREATE UNIQUE INDEX c1 ON t1 (c1) VISIBLE;
ALTER TABLE t1 ALTER INDEX c1 INVISIBLE;
```
-------------------------------------------------------------
不可见隐藏
在我们不确定新创建的索引是否安全可靠，或删除某一索引会对线上产生不可挽回的损失时候，可以通过将索引隐藏或不隐藏来进行在线的调整尝试。
- 不可见索引 (Invisible Indexes) 不会被查询优化器使用
- “不可见”是仅仅对优化器而言的，不可见索引仍然可以被修改或删除
- 即使用 SQL Hint USE INDEX 强制使用索引，优化器也无法使用不可见索引
- 不允许将主键索引设为不可见
- ALTER INDEX 语句用于修改索引的可见性，可以将索引设置为 Visible 或者 Invisible
```
CREATE TABLE t1 (c1 INT, c2 INT, UNIQUE(c2));
CREATE UNIQUE INDEX c1 ON t1 (c1) VISIBLE;
ALTER INDEX t1 ALTER INDEX c1 INVISIBLE;
```