bestsource

VARCHAR(255)가 다른 길이와 달리 자주 사용되는 이유가 있습니까?

bestsource 2023. 10. 1. 21:05
반응형

VARCHAR(255)가 다른 길이와 달리 자주 사용되는 이유가 있습니까?

여러 강좌, 책, 직업에서 VARCHAR(255)로 정의된 텍스트 필드를 "짧은" 텍스트에 대한 기본값의 일종으로 본 적이 있습니다.좋은 라운드 숫자 외에 255의 길이가 그렇게 자주 선택되는 데에 합당한 이유가 있습니까?정당한 이유가 있었던 과거 어느 때부터 (오늘 적용 여부) 보류된 것입니까?

물론, 줄의 최대 길이를 어떻게든 안다면, 더 엄격한 제한이 더 이상적일 것이라는 것을 알고 있습니다.그러나 최대 길이를 알 수 없음을 나타내는 VARCHAR(255)를 사용하는 경우에는 "짧은" 문자열일 뿐입니다.


참고: 이 질문(varchar(255) vtinyblock vtinytext)을 찾았습니다. 이 질문은 VARCHAR(n)에 n<=255의 경우 n+1바이트의 스토리지가 필요하고 n>255의 경우 n+2바이트의 스토리지가 필요하다는 것입니다.이것이 유일한 이유입니까?VARCHAR(256)에 비해 2바이트만 절약할 수 있고 VARCHAR(253)로 선언하면 다른 2바이트를 쉽게 절약할 수 있기 때문에 자의적으로 보입니다.

255는 8비트 숫자로 셀 수 있는 가장 큰 숫자이기 때문에 사용됩니다.255 이상의 문자를 세는 데 또 다른 전체 바이트가 필요하지 않으면서 8비트 수 사용을 극대화합니다.

이 방식으로 사용하면 VarChar는 텍스트를 저장할 때 바이트 수 + 1만 사용하므로 필드의 문자 수에 대한 엄격한 제한(예: 50자)을 사용하지 않는 한 255로 설정하는 것이 좋습니다.

의에 255 였습니다.VARCHAR일부 DBMS에서는 UTF-8을 사용하고 열 인덱스를 사용하려는 경우(인덱스 길이 제한 때문에) 여전히 유효 최대값이 되는 경우가 있습니다.

두 의 이름) SQL Server Sybase()의 에 의 255 입니다를 했습니다.VARCHAR기둥. 되었습니다...SQL Server 경우 1996/1997 년 버전 7 에서 변경되었습니다... 잘 지워지지 않습니다하지만 오래된 습관들은 때때로 힘들게 죽습니다.

저는 문자 그대로의 질문에 대답하겠습니다: 아니요, VARCHAR(255)가 그렇게 자주 사용되는 것을 볼 만한 이유는 없습니다(다른 답변에서 설명한 것처럼 좋은 이유가 아닌 이유도 있습니다).설계자가 VARCHAR(255) 대신 VARCHAR(300)을 선택했기 때문에 치명적으로 실패한 프로젝트의 예는 거의 찾아볼 수 없을 것입니다.이것은 VARCHAR 대신 CHAR에 대해 이야기하더라도 거의 중요하지 않은 문제가 될 것입니다.

는.2^8은 ㅇ256는 됩니다라는 합니다.0, 를 얻었겠군요255즉 IP 에 IP 수 .

255는 8입니다.11111111 = 255

도움이 되셨어요?

참고: 이 질문(varchar(255) vtinyblock vtinytext)을 찾았습니다. 이 질문은 VARCHAR(n)에 n<=255의 경우 n+1바이트의 스토리지가 필요하고 n>255의 경우 n+2바이트의 스토리지가 필요하다는 것입니다.이것이 유일한 이유입니까?VARCHAR(256)에 비해 2바이트만 절약할 수 있고 VARCHAR(253)로 선언하면 다른 2바이트를 쉽게 절약할 수 있기 때문에 자의적으로 보입니다.

아니요. 253을 선언한다고 해서 2바이트를 절약할 수는 없습니다.varchar의 구현은 길이 카운터와 가변 길이, 종료되지 않은 배열일 가능성이 높습니다.즉, varchar(255)에 "hello"를 저장하면 길이(숫자 5)는 1바이트, 5글자는 5바이트의 6바이트를 차지하게 됩니다.

부호가 없는 1바이트 번호는 [0-255] 범위를 포함할 수 있습니다.서 25510요?) :)

사실 한동안 MySQL에서 VARCHAR를 제공할 수 있는 가장 큰 크기는 255였고, 색인 및 기타 문제와 함께 TEXT보다 VARCHAR를 사용하는 것은 장점이 있습니다.

MsOffice(2000년 또는 2002년 버전까지)와 같은 많은 응용 프로그램에서 셀당 최대 문자 수는 255자였습니다.필드당 255자 이상을 처리할 수 있는 프로그램에서 해당 애플리케이션으로 데이터를 이동하는 것은 악몽이었습니다.현재, 그 한계는 점점 더 방해가 되지 않습니다.

00000000 -> 8비트 이진수입니다.숫자는 비트를 나타냅니다.

다음과 같이 계산합니다.

0000 0000 → (0)

0000 0001 → (1)

0000 0010 → (2)

0000 0011 → (3)

각 비트는 on 또는 off의 두 값 중 하나일 수 있습니다.총 최고 수는 곱셈으로 나타낼 수 있습니다.

2 * 2 * 2 * 2 * 2 * 2 * 2 * 2 - 1 = 255

아니면

2^8 - 1. 

첫 번째 숫자가 0이기 때문에 1을 뺀 것입니다.

255는 꽤 많은 값을 저장할 수 있습니다(말장난을 의도하지 않음).

비트를 더 많이 사용할수록 최대값이 기하급수적으로 증가합니다.따라서 여러 가지 이유로 비트를 더 추가하는 것은 과도한 작업입니다.

또 다른 이유는 RDO 및 ADO(ADO가 아닌 COM 버전)와 같은 Windows의 매우 오래된 데이터 라이브러리에 액세스하기 때문일 수 있습니다.NET) 255자 이상의 열에서 데이터를 가져오려면 GetChunk라는 특별한 방법을 호출해야 했습니다.varchar 열을 255로 제한한 경우 이 추가 코드는 필요하지 않습니다.

언급URL : https://stackoverflow.com/questions/1217466/is-there-a-good-reason-i-see-varchar255-used-so-often-as-opposed-to-another-l

반응형