새 SQL 테이블을 설정할 때마다 2 ^ n이 "짝수"가되는 것과 같은 방식으로 생각하지만 여기에 답을 요약하면 varchar (2 ^ n)을 정의하여 스토리지 공간에 큰 영향을 미치지 않습니다. 또는 심지어 varchar (MAX).
즉, 높은 varchar () 제한을 설정할 때 스토리지 및 성능에 대한 잠재적 영향을 여전히 예상해야합니다. 예를 들어, 전체 텍스트 인덱싱으로 제품 설명을 보유 할 varchar (MAX) 열을 작성한다고 가정 해 보겠습니다. 설명의 99 %가 500 자에 불과한 경우 갑자기 해당 설명을 Wikipedia 기사로 바꾸는 사람이 있으면 예상치 못한 스토리지 및 성능 저하가 발생할 수 있습니다.
Bill Karwin에서 고려해야 할 또 다른 사항 :
가능한 성능 영향은 MySQL에 있습니다. MySQL에서 임시 테이블 및 MEMORY 테이블은 VARCHAR 열을 고정 길이 열로 저장하고 최대 길이까지 채 웁니다. VARCHAR 열을 필요한 최대 크기보다 훨씬 크게 디자인하면 필요한 것보다 많은 메모리를 사용하게됩니다. 캐시 효율성, 정렬 속도 등에 영향을줍니다.
기본적으로 합리적인 비즈니스 제약과 약간 더 큰 크기의 오류가 있습니다. @oneday가 지적한 것처럼 영국의 가족 이름은 일반적으로 1-35 자 사이입니다. varchar (64)로 결정하면 최대 666 자라고 하는 이 사람의 가족 이름 을 저장하지 않는 한 아무 것도 아프지 않을 것 입니다. 이 경우 varchar (1028)가 더 의미가있을 수 있습니다.
그리고 도움이되는 경우 varchar 2 ^ 5에서 2 ^ 10이 채워지면 다음과 같이 보일 수 있습니다.
varchar(32) Lorem ipsum dolor sit amet amet.
varchar(64) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie
varchar(128) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie
vestibulum massa. Nullam dignissim elementum molestie. Vehiculas
varchar(256) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie
vestibulum massa. Nullam dignissim elementum molestie. Vehiculas
velit metus, sit amet tristique purus condimentum eleifend. Quis
que mollis magna vel massa malesuada bibendum. Proinde tincidunt
varchar(512) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie
vestibulum massa. Nullam dignissim elementum molestie. Vehiculas
velit metus, sit amet tristique purus condimentum eleifend. Quis
que mollis magna vel massa malesuada bibendum. Proinde tincidunt
dolor tellus, sit amet porta neque varius vitae. Seduse molestie
lacus id lacinia tempus. Vestibulum accumsan facilisis lorem, et
mollis diam pretium gravida. In facilisis vitae tortor id vulput
ate. Proin ornare arcu in sollicitudin pharetra. Crasti molestie
varchar(1024) Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donecie
vestibulum massa. Nullam dignissim elementum molestie. Vehiculas
velit metus, sit amet tristique purus condimentum eleifend. Quis
que mollis magna vel massa malesuada bibendum. Proinde tincidunt
dolor tellus, sit amet porta neque varius vitae. Seduse molestie
lacus id lacinia tempus. Vestibulum accumsan facilisis lorem, et
mollis diam pretium gravida. In facilisis vitae tortor id vulput
ate. Proin ornare arcu in sollicitudin pharetra. Crasti molestie
dapibus leo lobortis eleifend. Vivamus vitae diam turpis. Vivamu
nec tristique magna, vel tincidunt diam. Maecenas elementum semi
quam. In ut est porttitor, sagittis nulla id, fermentum turpist.
Curabitur pretium nibh a imperdiet cursus. Sed at vulputate este
proin fermentum pretium justo, ac malesuada eros et Pellentesque
vulputate hendrerit molestie. Aenean imperdiet a enim at finibus
fusce ut ullamcorper risus, a cursus massa. Nunc non dapibus vel
Lorem ipsum dolor sit amet, consectetur Praesent ut ultrices sit