문제

Varchar (255)가 Varchar (256) 대신 항상 사용되는 것을 볼 수 있지만 Varchar (16)가 Varchar (15) 대신 사용되는 것을 볼 수 있습니다. 이것은 나에게 일관성이없는 것 같습니다. 추가 바이트가 Varchar의 길이를 저장하는 데 사용되는 경우,이 규칙은 2, 4, 8과 같은 작은 길이에 1, 3, 7이면 적용되지 않아야합니까?

아니면 내가 뭔가 완전히 빠졌나요?

다시 말해서, 내가 아는 숫자가 12 명 이상이되지 않는다면, 대신 바르 차 (15) 또는 바르 차 (16)를 사용해야합니까? Varchar (12)와 동일한 양의 공간을 사용하기 때문에? 그렇다면 어떤 것을 사용합니까? 15 또는 16? 이 규칙이 256에 가까워지면 전혀 변경됩니까?

프로젝트에 따라 MySQL과 SQL을 모두 사용합니다.

도움이 되었습니까?

해결책

다시 말해서, 내가 아는 숫자가 12 명 이상이되지 않는다면, 대신 바르 차 (15) 또는 바르 차 (16)를 사용해야합니까?

아니! varchar (12) (또는 길이가 상당히 일정한 경우)를 사용하십시오.

옛날 옛적에 Varchar 유형은 일부 시스템에서 255 자로 제한되었습니다 (5.0.3 이전에 MySQL 포함) 첫 바이트가 저장된 필드의 길이를 나타 내기 때문에. 이러한 제한 사항을 감안할 때, 합리적인 양의 텍스트를 허용하려는 개발자는 다른 데이터 유형으로 이동하지 않고 255를 선택합니다.

그러나 데이터의 크기를 알고 있다면 데이터베이스의 크기를 정확히 사용하십시오.

다른 팁

이상하거나 짝수 숫자와 관련이 없습니다.

역사적으로 255자는 종종 최대 길이였습니다. VARCHAR 다양한 DBMS에서. Ann이 아닌 필드의 길이 제한 LOB (큰 물체) 당시에는 255 바이트 (1 바이트 int)였습니다. 그래서 첫 바이트는 필드의 길이 (0-255)와 나머지는 n 캐릭터의 바이트. 그것이 당신이 자주 보는 이유입니다 VARCHAR(255).

필드가 12보다 크지 않으면 사용하십시오. VARCHAR(12).

원래의 문제는 일부 시스템의 경우 Varchar (...)가 255로 제한되어 있다고 생각합니다. 하나의 바이트를 사용하여 실제 길이를 인코딩 할 때는 길이를 최대 255로 표현할 수 있기 때문입니다.

Varchar (16) / Varchar (15)는 이러한 기원을 연상시킬 가능성이 높지만 두 값에는 특별한 것이 없습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top