문서에 나와 있듯이 mysql은 varchar에 지정한 전체 공간을 할당하지 않습니다. 데이터의 실제 길이를 저장합니다. 그래서 거기에 부작용이있을 수도 있습니다. 마치 varchar 레코드의 원래 길이가 10 인 것처럼 이제는 20으로 업데이트하려고합니다. 그래도 지정된 제한값 인 50에 도달하지는 못합니다. 그러나 이전에 할당 된 공간은 충분하지 않습니다. 제 질문은 MySQL이 이와 같은 상황을 어떻게 처리 하는가입니다. 기록을 따르는 모든 것을 옮기는 데 시간이 오래 걸릴까요? 아니면 그렇게해야합니까? 내부적으로 어떻게 작동하는지 알려주는 사람이 있습니까? 미리 감사드립니다!varchar (x)를 사용하면 해가됩니까?
답변
MySQL은 충분히 다루기 때문에 세부 사항에 신경 쓰지 않아야합니다. 고정 길이 레코드를 사용하는 것보다 불규칙한 길이 레코드를 사용하는 것이 관리가 다소 느리지 만 레코드가 일반적으로 고정 된 크기보다 작 으면 훨씬 적은 데이터를 읽음으로써 성능이 크게 향상됩니다.
CHAR
열은 항상 최대 크기로 저장되고 검색된다는 것을 기억하십시오. 255 자 필드는 평균 레코드에 10-15 바이트의 데이터 만 있으면 255 바이트를 전송해야합니다. 이것은 상당량의 오버 헤드입니다.
CHAR
을 사용하면 필드가 항상 그 길이가되므로 전체 호스트에서 제거되어야하며 전체적으로 전송해야하기 때문에 다른 문제가 발생합니다. 이것은 가치있는 것보다 더 큰 문제입니다.
CHAR
열에 대한 현대 시대의 유일한 용도는 항상 정의되며 항상 특정 크기가되는 것입니다. 하나의 예가 식별자로 사용되는 40 문자 16 진 코드 해시 일 수 있지만 일반적으로 거의 사용되지 않으며 거의 모든 경우에 VARCHAR
도 사용할 수 있습니다.
'char '를 사용할 수있는 몇 가지 예를 생각해 볼 수 있습니다 - potcode, 전화 번호, 국민 보험 번호 등. 그러나 대부분의 경우'varchar'가 더 좋습니다. –
우편 번호는 국가 내에서도 상당히 다르며 전화 번호에는 내선 번호가있을 수 있습니다. 당신이 감히 * 무언가가 특정한 고정 길이라고 가정한다면, 당신은 대개 놀랍습니다. 전 CHAR (5)'우편 번호 필드를 사용하여 데이터베이스를 만들지 않기를 바랍니다. 이전에 보았으므로 분노를 넘어서는 것입니다. – tadman
- 1. 출력에 x ++ 대신 ++ x를 사용하면 출력은 어떻게됩니까?
- 2. ReCAPTCHA 공개 키/개인 키를 구할 때 전역 도메인 유효성을 사용하면 어떤 해가됩니까?
- 3. 기본 X를 사용하면 Y 문자를 얼마나 사용할 수 있습니까?
- 4. sqlite 명령 줄 셸에서 varchar (10)를 사용하면 실제로 어떻게됩니까?
- 5. varchar 2는 varchar 255보다 효율적입니까?
- 6. Varchar 값을 Hash로 변환하십시오. varchar
- 7. varchar (10) to varchar (9)
- 8. VARCHAR (MAX) 대 Oracle의 VARCHAR (n)
- 9. MySQL : VARCHAR (255) 대신 VARCHAR (20)을 사용해야하는 이유는 무엇입니까?
- 10. SQL은 VARCHAR
- 11. mysql을 : VARCHAR
- 12. 최소 varchar?
- 13. VARCHAR 시간
- 14. emacs는 C-x를 제거합니다
- 15. 어떻게 Kohana 3.x를
- 16. 액티브 X를 호출하는 방법
- 17. X를 지원하는 이맥스 빌드
- 18. 파이썬은 ++ x를 어떻게 파싱합니까?
- 19. MySQL : 왜 varchar (255)가 아닌 varchar (254)입니까?
- 20. 함수의 varchar 결과를 varchar 매개 변수로 전달하면 오류가 발생합니다.
- 21. 왜 Oracle의 varchar 정렬 순서가 varchar 비교의 동작과 일치하지 않습니까?
- 22. varchar (5)와 varchar (5000)의 차이점은 무엇입니까?
- 23. 데이터 형식 Varchar (30)에서 Varchar (45)로 변경
- 24. sql varchar (최대) 문제
- 25. MySQL VARCHAR 크기?
- 26. 날짜를 varchar/rfc822로 저장합니다.
- 27. 날짜로 캐스팅 varchar 유형
- 28. 텍스트 또는 varchar?
- 29. 개요를위한 VARCHAR 대 LONGTEXT
- 30. OutOfMemoryException SqlCommand VarChar (최대)
디스크 저장 영역 최적화가 이루어지는 한 관계형 데이터베이스는 지난 40 년 동안 먼 길을 왔다가 믿습니다. 작은 것들을 땀을 내지 마라. – Olaf