MySQL - удаляются ли индексы при удалении таблицы? - PullRequest
0 голосов
/ 12 октября 2011

В MySQL индексы автоматически удаляются при удалении таблицы? Верно ли это для других баз данных, таких как Postgres?

Ответы [ 3 ]

4 голосов
/ 12 октября 2011

да, он автоматически удаляется, чтобы проверить, что вы можете сделать следующим образом

CREATE TABLE myTable (column1 INT);
CREATE INDEX index_on_mytable ON table1 (column1);

Он создаст таблицу с именем myTable и свяжет с ней index_on_mytable index

теперь смотрите подробности следующим образом

SELECT COUNT(*) FROM information_schema.STATISTICS WHERE INDEX_NAME = 'index_on_myTable';

это вернет 1, это означает, что индекс существует

, теперь отбрасываем таблицу

DROP TABLE myTable;

и снова проверяем

SELECT COUNT(*) FROM information_schema.STATISTICS WHERE INDEX_NAME = 'index_on_myTable';

на этот разон вернет 0 при удалении индекса с таблицей.

1 голос
/ 12 октября 2011

Да.Индексы в РСУБД не могут существовать независимо от таблицы, к которой они относятся.

0 голосов
/ 12 октября 2011

Все данные таблицы удалены; это включает индексы и определение таблицы.

Индексы всегда можно перестроить, если данные таблицы и ее определение остаются неизменными, но не наоборот. Невозможно восстановить что-либо значимое из индексов без чего-либо еще.

Я не знаю другого сервера баз данных, который мог бы оставить индексы, но это не значит, что его нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...