데이터베이스 필드의 크기가 255 자로 설정되어있는 경우가 종종 있습니다. 전통적 / 역사적 이유는 무엇입니까? 페이징 / 메모리 제한 및 성능과 관련이 있다고 가정하지만 255와 256 사이의 구별은 항상 혼란 스럽습니다.
varchar(255)
이것은 용량 또는 크기가 고려되는, 인덱서없는 , 그래서 255 256 선호 되는가? 바이트가 특정 목적 (터미네이터 또는 null 또는 기타)을 위해 예약되어 있습니까?
아마도 varchar (0)은 말도 안됩니까 (용량이 0입니까)? 어느 경우에 2 ^ 8의 공간은 반드시 256이어야합니까?
성능상의 이점을 제공하는 다른 규모가 있습니까? 예를 들어 varchar (512)가 varchar (511) 또는 varchar (510)보다 성능이 낮습니까?
이 값이 이전 및 새 모든 관계 데이터베이스에 대해 동일합니까?
면책 조항 -나는 DBA가 아닌 개발자이며 알려진 비즈니스 논리에 맞는 필드 크기 및 유형을 사용하지만 더 이상 관련이 없어도이 환경 설정 의 역사적인 이유 를 알고 싶습니다. 여전히 관련이 있다면 더).
편집하다:
답변에 감사드립니다. 크기를 저장하는 데 바이트가 사용된다는 의견이 있지만, 이것이 내 마음에 결정적으로 정착하지는 않습니다.
메타 데이터 (문자열 길이)가 동일한 연속 메모리 / 디스크에 저장된 경우에는 의미가 있습니다. 1 바이트의 메타 데이터와 255 바이트의 문자열 데이터는 서로 매우 잘 어울리 며 256 개의 연속 바이트 스토리지에 적합하며 깔끔하고 깔끔합니다.
그러나 ... 메타 데이터 (문자열 길이)가 실제 문자열 데이터와 별도로 저장되면 (아마도 마스터 테이블에), 1 바이트 정수만 저장하기 쉽기 때문에 문자열 데이터의 길이를 1 바이트로 제한해야합니다 메타 데이터가 조금 이상해 보입니다.
두 경우 모두 DB 구현에 의존하는 미묘한 것 같습니다. 255를 사용하는 관행은 널리 퍼져있는 것처럼 보이므로 누군가 어딘가에 좋은 사례를 주장했을 것입니다. 누구나 그 사건이 무엇인지 기억할 수 있습니까? 프로그래머는 이유없이 새로운 연습을 채택하지 않을 것이며, 이것은 한 번 새로운 것이었을 것입니다.