여러 코스, 서적 및 작업에서 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 브이 tinytext VARCHAR (말한다), n이 ) 요구 N +1의 저장 바이트 N <= 255, N 의 저장 +2 바이트 N > 255. 이것이 유일한 이유입니까? 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을 사용하는 이점이 있습니다.