删除MySQL表是否会自动删除该表的索引?
答案 0 :(得分:15)
是。它删除了索引。这可以验证:
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
答案 1 :(得分:1)
是的,确实如此。没有表,没有理由保留索引。
您可以通过创建MyISAM表并查看tablename.MYI
的数据文件夹来确认这一点。一旦你放下桌子,这个文件就会消失。
答案 2 :(得分:1)
是。索引是其所有者表的一部分,并在删除时与行数据一起释放。
(引用它的其他表上的外键索引将阻止表被删除。)
答案 3 :(得分:1)
当表被删除时,所有数据,索引和链接信息也将被删除。 您可以将此视为行的级联删除,当您删除行时,链接到它的所有信息都将被删除(外键等)
答案 4 :(得分:0)
http://dev.mysql.com/doc/refman/5.1/en/drop-table.html
所有表格数据和表格 定义被删除,所以要小心 这句话!