제목 그대로 입니다.
InnoDB에는 index 가 안걸리나요?
같은 스키마로 MyISAM 과 InnoDB로 테이블을 만들었는데요.
MyISAM 은 Index length 가 있고요.
InnoDB 는 Index length 가 0 이네요.
왜 그럴까요?
innodb 도 인덱스는 사용하는대.. 왜 안될까요??
innodb 설정은 다 해주신건가여??
innodb 설정을 한번 확인해보시기 바랍니다.
혹시 테이블 생성 직후, SHOW TABLE STATUS 항목의 Index_length를 말씀하시는 거라면, InnoDB 쪽이 0, MyISAM이 일반적으로 1024가 나오는 것이 정상입니다.
InnoDB 사용시 (별도로 테이블 단위 스페이스를 사용하게 설정하지 않는다면)공통의 InnoDB Tablespace를 사용하게 되고, Index_length는 실제로 차지하고 있는 용량을 나타내기 때문에, 테이블 생성 직후는 0으로 표시되는 것이 정상입니다.
반면, MyISAM인 경우는 테이블당 MYD, MYI파일을 생성하고, Index_length는 MYI파일의 크기를 의미합니다. 테이블이 생성되자마자 헤더와 첫번째 페이지를 포함한 상태로 MYI파일을 생성할 것이기 때문에, 1024바이트 의 크기를 가집니다. 그리고 OPTIMIZE TABLE을 수행하지 않는다면, 많은 row가 삭제되더라도 Index_length가 줄어들지 않을 것입니다.
혹시 제가 틀린 부분이 있다면 지적 부탁드립니다.
아~ InnoDB도 인덱스가 생기는데 Index_length에 나타나지 않는 거군요.
처음 알았습니다.
감사합니다.