VARCHAR (255)이 너무 자주 사용되는 다른 이유가 있습니까?
여러 코스, 서적 및 작업에서 VARCHAR (255)로 정의 된 텍스트 필드를 "짧은"텍스트의 기본값으로 정의했습니다. 좋은 둥근 숫자 가 아닌 길이 255의 길이를 너무 자주 선택해야 할 이유가 있습니까? 과거에 좋은 이유가 있었을 때 (오늘 적용 여부에 관계없이) 어느 시점부터 개최되고 있습니까?
물론 문자열의 최대 길이를 알고 있다면 더 엄격한 제한이 더 이상적이라는 것을 알고 있습니다. 그러나 VARCHAR (255)를 사용하는 경우 아마도 최대 길이를 모른다는 것을 나타내는데 "짧은"문자열 일뿐입니다.
주 :이 문제 (찾을 VARCHAR (255) V의 TINYBLOB 브이 tinytext VARCHAR (말한다), n이 ) 요구 N +1의 저장 바이트 N <= 255, N 의 저장 +2 바이트 N > 255. 이것이 유일한 이유입니까? VARCHAR (256)에 비해 2 바이트 만 저장하므로 VARCHAR (253)을 선언하여 다른 2 바이트를 쉽게 저장할 수 있기 때문에 임의의 것으로 보입니다.
역사적 VARCHAR
으로 일부 DBMS에서 255자가 최대 길이 인 경우가 많았으며 UTF-8을 사용하고 열을 색인화하려는 경우 (인덱스 길이 제한으로 인해) 여전히 유효 최대 값이됩니다.
255는 8 비트 숫자로 계산할 수있는 최대 문자 수이므로 사용됩니다. 255 이상의 문자를 계산하기 위해 다른 전체 바이트를 요구하지 않고 8 비트 수의 사용을 최대화합니다.
이 방법을 사용하는 경우 VarChar는 바이트 수 + 1 만 사용하여 텍스트를 저장하므로 필드의 문자 수에 대한 하드 제한 (50과 같은)을 원하지 않는 한 텍스트를 255로 설정할 수도 있습니다.
아마도 SQL Server와 Sybase (내가 익숙한 두 가지 이름 모두)는 VARCHAR
열의 문자 수에서 최대 255자를 사용했기 때문일 것 입니다. 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) v tinyblob v tinytext)을 찾았습니다 .VARCHAR (n)에는 n <= 255의 경우 n + 1 바이트의 스토리지가 필요하고 n> 255의 경우 n + 2 바이트의 스토리지가 필요합니다. 이것이 유일한 이유입니까? VARCHAR (256)에 비해 2 바이트 만 저장하므로 VARCHAR (253)을 선언하여 다른 2 바이트를 쉽게 저장할 수 있기 때문에 임의의 것으로 보입니다.
253을 선언하여 2 바이트를 절약 할 수 없습니다. varchar의 구현은 길이 카운터와 가변 길이의 종결되지 않은 배열 일 가능성이 높습니다. 즉, "hello"를 varchar (255)에 저장하면 6 바이트 (길이 1 바이트, 5 자 5 바이트)를 차지하게됩니다.
부호없는 1 바이트 숫자는 범위 [0-255]를 포함 할 수 있습니다. 255을 볼 때 프로그래머가 기본으로 생각하기 때문에 그래서, 그것은 대부분이다 10
(농담을 얻을?) :)
실제로, 255는 MySQL에서 VARCHAR를 제공 할 수있는 가장 큰 크기였으며 인덱싱 및 기타 문제와 함께 TEXT를 통해 VARCHAR을 사용하는 이점이 있습니다.
MsOffice (버전 2000 또는 2002까지)와 같은 많은 응용 프로그램에서 셀당 최대 문자 수는 255 자입니다. 필드 당 255 자 이상을 처리 할 수있는 프로그램에서 해당 응용 프로그램으로 / 응용 프로그램에서 데이터를 이동하는 것은 악몽이었습니다. 현재, 그 한계는 점점 줄어들고 있습니다.
또 다른 이유는 RDO 및 ADO (COM 버전이 아닌 ADO.NET과 같은)와 같은 Windows의 매우 오래된 데이터 액세스 라이브러리에서 255자가 넘는 열에서 데이터를 가져 오기 위해 특수 메소드 인 GetChunk를 호출해야하기 때문입니다. varchar 열을 255로 제한하면이 추가 코드가 필요하지 않습니다.
'Programming' 카테고리의 다른 글
NSDate를 연도, 월, 일 및시, 분, 초 모두에 대해 특정 스타일로 포맷 (0) | 2020.06.28 |
---|---|
한 명의 사용자가 수정 한 모든 파일을 git에게 알려줄 수 있습니까? (0) | 2020.06.28 |
postgres 데이터베이스에서 단일 테이블의 백업을 만드는 방법은 무엇입니까? (0) | 2020.06.28 |
이 범위를 div의 오른쪽에 맞추는 방법은 무엇입니까? (0) | 2020.06.28 |
mailto body에 줄 바꿈 삽입 (0) | 2020.06.28 |