Programming

VARCHAR과 CHAR의 차이점은 무엇입니까?

procodes 2020. 3. 4. 07:49
반응형

VARCHAR과 CHAR의 차이점은 무엇입니까?


MySQL에서 VARCHAR과 CHAR의 차이점은 무엇입니까?

MD5 해시를 저장하려고합니다.


VARCHAR 가변 길이입니다.

CHAR 고정 길이입니다.

콘텐츠가 고정 된 크기 인 경우으로 더 나은 성능을 얻을 수 CHAR있습니다.

자세한 설명 CHAR 및 VARCHAR 유형 의 MySQL 페이지를 참조하십시오 (주석도 읽으십시오).


  1. 고정 길이의 문자열 값을 저장하는 데 사용됩니다 .
  2. 최대 번호 데이터 유형이 보유 할 수있는 문자 수는 255 자 입니다.
  3. 그것은이다 50 % 더 빠른 VARCHAR보다.
  4. 정적 메모리 할당을 사용합니다 .

바차

  1. 가변 길이 영숫자 데이터 를 저장하는 데 사용됩니다 .
  2. 이 데이터 유형이 보유 할 수있는 최대 값은 최대
    • MySQL 이전 5.0.3 : 255 자 .
    • Post-MySQL 5.0.3 : 65,535자가 행에 대해 공유되었습니다.
  3. 그것은의 느린 CHAR보다.
  4. 동적 메모리 할당 *을 사용합니다 .

CHAR 대 VARCHAR

CHAR은 고정 길이 크기 변수
에 사용됩니다. VARCHAR은 가변 길이 크기 변수에 사용됩니다.

예 :

Create table temp
(City CHAR(10),
Street VARCHAR(10));

Insert into temp
values('Pune','Oxford');

select length(city), length(street) from temp;

출력은

length(City)          Length(street)
10                    6

결론 : 스토리지 공간을 효율적으로 사용하려면 가변 길이가 가변 인 경우 VARCHAR 대신 CHAR을 사용해야합니다.


CHAR(x)열은있을 수 정확히 x 문자. 열 수 있습니다 최대 문자.
VARCHAR(x) x

MD5 해시는 항상 같은 크기이므로을 사용해야합니다 CHAR.

그러나 먼저 MD5를 사용해서는 안됩니다. 그것은 알려진 약점을 가지고 있습니다.
대신 SHA2를 사용하십시오.
암호를 해싱하는 경우 bcrypt를 사용해야합니다.


입력 한 문자가 선언 된 길이보다 짧은 경우 Varchar는 후행 공백을 차단하지만 char은 그렇지 않습니다. Char는 공백을 채우고 항상 선언 된 길이의 길이입니다. 효율성 측면에서 varchar는 문자를 자르므로 더 많은 조정을 할 수 있으므로 더 능숙합니다. 그러나 char의 정확한 길이를 알고 있으면 char이 약간 더 빠른 속도로 실행됩니다.


MySQL에서 VARCHAR과 CHAR의 차이점은 무엇입니까?

이미 답변을 제공하기 위해 OLTP 시스템 또는 업데이트가 자주 발생하는 시스템 에서 업데이트 중에 열 조각화 CHAR가 가능하기 때문에 가변 크기 열에도 사용 하는 것이 VARCHAR좋습니다.

MD5 해시를 저장하려고합니다.

보안이 중요한 경우 MD5 해시는 최선의 선택이 아닙니다. 그러나 해시 함수를 사용하려면 BINARY대신 유형을 고려 하십시오 (예 : MD5는 16 바이트 해시를 생성하므로 16 진수를 나타내는 32 자 BINARY(16)대신 충분할 것이므로 CHAR(32)공간을 절약하고 성능을 향상시킬 수 있습니다.


오늘날 대부분의 RDBMS에서는 동의어입니다. 그러나 여전히 구별이있는 시스템의 경우 CHAR 필드는 고정 너비 열로 저장됩니다. 이를 CHAR (10)으로 정의하면 10 개의 문자가 테이블에 기록되며, 여기서 "패딩"(일반적으로 공백)은 데이터가 사용하지 않는 공간을 채우는 데 사용됩니다. 예를 들어, "bob"을 저장하면 ( "bob"+7 공백)으로 저장됩니다. VARCHAR (가변 문자) 컬럼은 CHAR 컬럼이 수행하는 추가 공간을 낭비하지 않고 데이터를 저장하기위한 것입니다.

항상 그렇듯이 Wikipedia 는 더 크게 말합니다.


CHAR은 고정 길이 필드입니다. VARCHAR은 가변 길이 필드입니다. 이름과 같이 길이가 가변적 인 문자열을 저장하는 경우 길이가 항상 같으면 VARCHAR을 사용하십시오. CHAR은 약간 더 효율적이고 약간 빠르기 때문에 CHAR을 사용하십시오.


CHAR은 고정 길이이고 VARCHAR은 가변 길이입니다. CHAR은 항상 항목 당 동일한 양의 스토리지 공간을 사용하지만 VARCHAR은 실제 텍스트를 저장하는 데 필요한 양만 사용합니다.


char는 고정 길이 문자 데이터 형식이고 varchar는 가변 길이 문자 데이터 형식입니다.

char은 고정 길이 데이터 유형이므로 char 값의 저장 크기는이 열의 최대 크기와 같습니다. varchar는 가변 길이 데이터 형식이므로 varchar 값의 저장소 크기는이 열의 최대 크기가 아니라 입력 한 데이터의 실제 길이입니다.

열의 데이터 항목이 동일한 크기 일 것으로 예상되는 경우 char을 사용할 수 있습니다. 열의 데이터 항목 크기가 크게 달라질 것으로 예상되는 경우 varchar를 사용할 수 있습니다.


고성능 MySQL에 따르면 :

VARCHAR 은 가변 길이 문자열을 저장하며 가장 일반적인 문자열 데이터 유형입니다. 고정 길이 유형보다 저장 공간이 적게 필요할 수 있습니다. 필요한만큼의 공간 만 사용하기 때문입니다 (즉, 더 짧은 값을 저장하는 데 더 적은 공간이 사용됨). ROW_FORMAT = FIXED로 작성된 MyISAM 테이블은 예외이며 각 행에 대해 디스크의 고정 된 공간을 사용하므로 공간을 낭비 할 수 있습니다. VARCHAR은 공간을 절약하므로 성능을 향상시킵니다.

CHAR 은 고정 길이입니다. MySQL은 항상 지정된 수의 문자에 충분한 공간을 할당합니다. CHAR 값을 저장할 때 MySQL은 후행 공백을 제거합니다. (이것은 MySQL 4.1 및 이전 버전의 VARCHAR에서도 마찬가지였습니다. CHAR 및 VAR CHAR은 논리적으로 동일하며 스토리지 형식에서만 다릅니다.) 값은 비교에 필요한대로 공백으로 채워집니다.


Char 길이가 고정되어 있으며 (2000 자 지원) 문자를 나타내는 데이터 형식입니다

Varchar 길이가 가변적 임 (4000 자 지원)


문자 또는 varchar-길이를 괄호로 표시 할 수있는 텍스 털 데이터를 입력하는 데 사용됩니다 (예 : char).


CHAR :

  • 문자와 숫자를 모두 지원합니다.
  • 2000자를 지원합니다.
  • 고정 길이.

바차 :

  • 문자와 숫자를 모두 지원합니다.
  • 4000자를 지원합니다.
  • 가변 길이.

다른하실 말씀 있나요......!!!!

참고 URL : https://stackoverflow.com/questions/1885630/whats-the-difference-between-varchar-and-char



반응형