database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 29281 게시물 읽기
No. 29281
데이터 삭제시 인덱스도 같이 삭제 되나요?
작성자
김대청(dcmru)
작성일
2009-09-07 11:13
조회수
5,737

테이블 컬럼에 검색 속도를 위해 인덱스를 걸어놓았습니다.

단일 컬럼으로 걸어놓은 것도 있고, 여러 컬럼을 합쳐서 걸어놓은 것도 있습니다.

여기서 데이터를 삭제할 시 걸려져 있는 인덱스도 같이 삭제가 되는지 궁금합니다.

이 글에 대한 댓글이 총 2건 있습니다.

해당 인덱스에 걸려 있는 '모든' 컬럼이 삭제될 경우, 인덱스가 삭제됩니다.

아래의 예제 구문을 차례로 보시면 쉽게 아실 수 있습니다.

 

더불어, 이것은 추측인데, 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

 

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 | b_c_idx | 1 | b | A | NULL | NULL | NULL | YES | BTREE | |

| test | 1 | b_c_idx | 2 | c | A | NULL | NULL | NULL | YES | BTREE | |

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

2 rows in set (0.00 sec)

 

mysql> alter table test drop column b;

Query OK, 0 rows affected (0.02 sec)

Records: 0 Duplicates: 0 Warnings: 0

 

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 | b_c_idx | 1 | c | A | NULL | NULL | NULL | YES | BTREE | |

+-------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+

1 row in set (0.00 sec)

 

mysql>

 

박현우(lqez)님이 2009-09-09 03:55에 작성한 댓글입니다.

답변 감사드립니다.

김대청(dcmru)님이 2009-09-09 13:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29284질문드립니다 쿼리 where 절 [5]
전종구
2009-09-08
5792
29283서브쿼리를 만들어봐야 겠는데 힘드네요 도와 주세요 [1]
술취한머슴
2009-09-08
5818
29282Foreign key update cascade의 모호성? [1]
강동화
2009-09-08
6159
29281데이터 삭제시 인덱스도 같이 삭제 되나요? [2]
김대청
2009-09-07
5737
29268Database 용량 체크 방법 [1]
김지숙
2009-09-04
8034
29267mysql 관련 질문입니다. [3]
박혜성
2009-09-04
6050
29254mysql 에러 [2]
이성식
2009-09-03
6211
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다