删除索引 === 当索引不再需要、命名不合理,或者优化方案需要调整时,就需要删除索引。删除索引可以减少维护成本,但执行前应确认该索引是否仍被查询依赖。 ### 使用ALTER TABLE删除索引 可以通过 `ALTER TABLE` 删除普通索引: ```sql ALTER TABLE user DROP INDEX index_name; ``` 如果删除的是主键索引,则通常写成: ```sql ALTER TABLE user DROP PRIMARY KEY; ``` 需要注意,主键删除的影响通常比普通索引更大,因为它往往与主键约束、外键关系和程序逻辑相关。 ### 使用DROP INDEX删除索引 也可以使用 `DROP INDEX` 删除索引: ```sql DROP INDEX index_name ON table_name; ``` 例如: ```sql DROP INDEX index_user ON user; ``` 这种写法的语义更直接,比较适合在脚本中明确表达“删除索引”这一动作。 ### 小结 删除索引的常见方式有两种:`ALTER TABLE ... DROP INDEX ...` 和 `DROP INDEX ... ON ...`。真正需要关注的不是语法,而是删除之后查询性能是否会受到影响。