db인덱스 설정문의 정보
db인덱스 설정문의본문
대용량 테이블의 경우 인덱스를 걸어주면 속도가 개선된다고 하는데요
관련내용을 보다보니 입력/수정/삭제가 빈번판 테이블은 오히려 느려진다고 되어 있네요
그렇다면 저희 같은경우 몰인몰 형태의 쇼핑몰으로 상품입력 및 수정이 많은데요
item(상품)테이블에 인덱스를 걸면 속도가 개선이 될까요 오히려 늦어질까요...
총 행수는 189,941개 입니다
ps)
상품명에다 인덱스를 걸고자할경우 아래와 같이 적용맞죠??
적용시에 ALTER TABLE yc4_item ADD INDEX(it_name);
관련내용을 보다보니 입력/수정/삭제가 빈번판 테이블은 오히려 느려진다고 되어 있네요
그렇다면 저희 같은경우 몰인몰 형태의 쇼핑몰으로 상품입력 및 수정이 많은데요
item(상품)테이블에 인덱스를 걸면 속도가 개선이 될까요 오히려 늦어질까요...
총 행수는 189,941개 입니다
ps)
상품명에다 인덱스를 걸고자할경우 아래와 같이 적용맞죠??
적용시에 ALTER TABLE yc4_item ADD INDEX(it_name);
댓글 전체
인덱싱은 varchar형으로 거는것은 비추입니다.
굳이 varchar형으로 걸어야겠다면 검색어 자체가 16~32byte이상 넘지 찮게 하기 위해 인덱싱을 varchar(16)으로 걸면 효과를 극대화 할 수 있습니다.
인덱싱을 걸고 insert속도가 느려짐을 느끼려면 적어도 100만 row가 넘어야 그 효과가 두드러지게 나옵니다. innodb 테스트시에 서버 하드디스크를 SAS 15k non-raid에 인덱싱 없는 상태에서 insert가 50ms이면 인덱싱을 3개정도 걸고 100만 row에 넣으면 80ms정도 걸리게 됩니다.
인덱싱의 효과를 가장 많이 볼 수 있는 것은 크기 구분이 가능한 Interger형이며 그다음은 char, varchar형 순으로 index의 효과를 볼 수 있습니다.
인덱싱이라는 것은 select가 빈번히 일어나는 경우 검색 효과를 극대화 하기 위함입니다.
상품 정보라는 것은 검색에 비해 드물게 입력되므로 인덱싱의 효과를 보실 수 있습니다.
굳이 varchar형으로 걸어야겠다면 검색어 자체가 16~32byte이상 넘지 찮게 하기 위해 인덱싱을 varchar(16)으로 걸면 효과를 극대화 할 수 있습니다.
인덱싱을 걸고 insert속도가 느려짐을 느끼려면 적어도 100만 row가 넘어야 그 효과가 두드러지게 나옵니다. innodb 테스트시에 서버 하드디스크를 SAS 15k non-raid에 인덱싱 없는 상태에서 insert가 50ms이면 인덱싱을 3개정도 걸고 100만 row에 넣으면 80ms정도 걸리게 됩니다.
인덱싱의 효과를 가장 많이 볼 수 있는 것은 크기 구분이 가능한 Interger형이며 그다음은 char, varchar형 순으로 index의 효과를 볼 수 있습니다.
인덱싱이라는 것은 select가 빈번히 일어나는 경우 검색 효과를 극대화 하기 위함입니다.
상품 정보라는 것은 검색에 비해 드물게 입력되므로 인덱싱의 효과를 보실 수 있습니다.
청산유수
멋진 답변 감사드립니다^^