mysql - 删除 MySQL 表是否也会自动删除该表的索引?

标签 mysql indexing

<分区>

删除 MySQL 表是否也会自动删除该表的索引?

最佳答案

是的。它删除索引。这可以验证:

CREATE TABLE table1 (foo INT);
CREATE INDEX ix_table1_foo ON table1 (foo);
CREATE INDEX ix_table1_foo ON table1 (foo); -- fails: index already exists.
DROP TABLE table1;
CREATE TABLE table1 (foo INT);
CREATE INDEX ix_table1_foo ON table1 (foo); -- succeeds: index does not exist.

您也可以通过查看 information schema 来验证它。 :

CREATE TABLE table1 (foo INT);
CREATE INDEX ix_table1_foo ON table1 (foo);

SELECT COUNT(*)
FROM information_schema.STATISTICS
WHERE INDEX_NAME = 'ix_table1_foo';  -- returns 1

DROP TABLE table1;

SELECT COUNT(*)
FROM information_schema.STATISTICS
WHERE INDEX_NAME = 'ix_table1_foo';  -- returns 0

关于mysql - 删除 MySQL 表是否也会自动删除该表的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2853801/

相关文章:

mysql - 用于实现灵活的动态数据存储的最佳关系数据库模式是什么?

mysql - 如何将营业时间存储在数据库中以便在打开时能够进行搜索?

php - 值在数组中的 MySQL SELECT 语句

php - Laravel 如何使用 Eloquent 连接表并使用 where 条件?

java - 索引超出范围(文件读取)

mysql - 我应该在 MySQL 表中放置索引

mysql - wamp 服务器 phpmyadmin 没有权限

C++ 索引结构

mongodb - 改进 MongoDB 中存在的查询字段

mysql - 避免 mysql 文件排序