# 隐藏索引 Shop 表的部分字段如下: ```sql create table shop ( id int primary key auto_increment, description varchar(8000), fulltext (description) -- ... ) ``` 已知 description 字段上的全文索引名为 description。因为这个表已经很大,Joe 想要删掉这个索引,但是他不确定是否有程序还在使用它, Joe 应该怎么做?
点击进入[MySQL实战练习环境](https://mydev.csdn.net/product/pod/new?image=cimg-centos7-skilltreemysql&connect=auto&create=auto&utm_source=skill){target="_blank"}。 * `show databases;` 列出所有数据库 * `show tables;` 列出所有表 ## 答案 先执行 ```sql alter table shop alter index description invisible ; ``` 将索引隐藏,观察确认没有影响后再执行 ```sql alter table shop drop index description; ``` 删除。 ## 选项 ### A 先备份 shop 表,然后执行 ```sql alter table shop drop index description; ``` 删除,有问题的话从备份文件恢复。 ### B 备份 shop ,然后删除重建,重建时去掉 description 相关的索引逻辑。 ### C 先执行 ```sql alter table shop alter index description invisible ; ``` 将索引隐藏,确认后再执行 ```sql alter table shop alter index description visible ; ``` 恢复索引可见。