2010-05-18 14 views

Respuesta

15

Sí. Cae los índices. Esto se puede verificar:

 
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. 

También puede verificar que mirando en el 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

Sí, lo hace. Sin una mesa, no hay razón para guardar los índices.

Puede confirmarlo creando una tabla MyISAM y buscando en la carpeta de datos tablename.MYI. una vez que suelte la tabla, este archivo desaparecerá.

1

Sí. Los índices forman parte de la tabla de propietarios y se liberan junto con los datos de fila cuando se descartan.

(índices de clave externa en otras tablas que hacen referencia a ella evitará la tabla que se cayeron.)

1

Cuando una tabla se cae todos los datos, índices, y la información vinculada se eliminarán también. Puede ver esto como una eliminación en cascada de una fila, cuando elimina una fila, toda la información que estaba vinculada a ella también se eliminará (claves externas, etc.)

Cuestiones relacionadas