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 29368 게시물 읽기
No. 29368
innodb에서 varchar 길이선택과 성능?
작성자
이왕태(wangtae)
작성일
2009-10-21 16:11ⓒ
2009-10-21 16:43ⓜ
조회수
6,852

innodb에서 varchar의 길이를 1000, 5000, 10000 이렇게도 잡을수가 있는데요.


이 길이를 크게 잡았을경우 성능상 문제가 있을수 있을까요?


예를들어 HDD의 정보를 읽는 최소 단위가 2500이라서 2500 보다 크게 잡을 경우 속도가 많이 저하된다든지요.


참고로 문의 드리는 필드는 자주사용하는 것은 아니고 가끔씩사용되는데..


성능이랑 상관이 없다면 5000 정도로 잡아버리고 싶지만 해당 테이블이 빈번하게 쿼리되는 핵심 테이블이라 


이러한 조취가 성능과 연관된다면 다른 방안을 모색하려고 합니다.


혹시 관련내용 아시는 분은 알려주세요. 


감사합니다.

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

mysql 에서 속도에 영향을 미치는 것은 용량으로 알고 있습니다.

이유없이 varchar의 길이를 크게 잡을 필요는 없지 않을까요?

길이가 너무 다양해서 처음에 좀 모호하다면 일단 넉넉히 잡고 운영 하시다가.. 어느정도 데이터가 쌓이면 procedure analyse();를 사용하셔서 분석 하신 후 alter table 로 적당한 길이로 변경해주시는 게 옳을 듯 합니다.

아영님이 2009-10-21 17:29에 작성한 댓글입니다. Edit

용량이 성능에 크리티컬한 영향을 미치는 것은 맞습니다.
일단 하드를 읽는 최소 단위는 클러스터로 보시면 되구요, 일반적으로 16K, 32K등을 사용합니다.

말씀하신 상황에서는 2500이든 10000이든 차이는 없을 것으로 보입니다.

왜냐하면, VARCHAR의 제한 길이가 255 초과인 경우는 어차피 앞에 2 Byte + 실제 길이 만큼만 공간을 차지하기 때문이지요. 따라서 저장되는 스트링의 평균 길이가 어느 정도냐에 따라 성능이 달라질 것 같고, 미리 크게 잡는다고 하여 생기는 불리함은 없을 것으로 생각됩니다. 

결과적으로 2500,10000 등을 지정하는 것은 해당 컬럼의 최대 길이에 '제한'을 가하는 것이지 성능적인 면을 좌지우지 하지는 않습니다.

아래 링크를 참조하세요.
http://dev.mysql.com/doc/refman/5.0/en/char.html

박현우(lqez)님이 2009-10-21 21:36에 작성한 댓글입니다.

답변 감사드립니다. ^^

이왕태(wangtae)님이 2009-10-22 14:36에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
29374bigint 와 int unsigned 자료형의 성능 [1]
강동화
2009-10-25
7479
29372두개의 테이블의 합계를 조인으로 구하는데 중복됩니다. 도와주세요 [2]
김명현
2009-10-24
5734
2936930분 단위로 통계를 낼수 있는 방법에 대해 문의합니다. [1]
초보자
2009-10-21
8702
29368innodb에서 varchar 길이선택과 성능? [3]
이왕태
2009-10-21
6852
29367insert 문에 대한 질문... [1]
구자범
2009-10-21
5819
29366검색시 빠른 것은 인덱스는? [4]
김명수
2009-10-21
6427
29365group by로 최댓값 구하는방법? [1]
ㅇㅇ
2009-10-20
6312
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.026초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다