테이블 컬럼에 검색 속도를 위해 인덱스를 걸어놓았습니다.
단일 컬럼으로 걸어놓은 것도 있고, 여러 컬럼을 합쳐서 걸어놓은 것도 있습니다.
여기서 데이터를 삭제할 시 걸려져 있는 인덱스도 같이 삭제가 되는지 궁금합니다.
해당 인덱스에 걸려 있는 '모든' 컬럼이 삭제될 경우, 인덱스가 삭제됩니다.
아래의 예제 구문을 차례로 보시면 쉽게 아실 수 있습니다.
더불어, 이것은 추측인데, MyISAM에서 사용하는 파일기반 Index파일, 즉 MYI의 크기 자체는 인덱스가 삭제될 때 같이 작아지지 않을지도 모릅니다. 이건 optimize table 할 경우에 적정 크기로 줄어드는 것으로 알고 있는데, 잘못된 정보라면 다른 분께서 지적해주세요.
mysql> show index from test;
+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+
| Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment |
| test | 1 | a_idx | 1 | a | A | NULL | NULL | NULL | YES | BTREE | |
| test | 1 | b_c_idx | 1 | b | A | NULL | NULL | NULL | YES | BTREE | |
| test | 1 | b_c_idx | 2 | c | A | NULL | NULL | NULL | YES | BTREE | |
3 rows in set (0.00 sec)
mysql> alter table test drop column a;
Query OK, 0 rows affected (0.01 sec)
Records: 0 Duplicates: 0 Warnings: 0
2 rows in set (0.00 sec)
mysql> alter table test drop column b;
Query OK, 0 rows affected (0.02 sec)
| test | 1 | b_c_idx | 1 | c | A | NULL | NULL | NULL | YES | BTREE | |
1 row in set (0.00 sec)
mysql>
답변 감사드립니다.