반응형
MySQL은 varchar 필드를 어떻게 저장합니까? 다음 패턴이 합리적인 스토리지 크기를 나타낸다고 가정 할 수 있습니까?
1,2,4,8,16,32,64,128,255 (최대)
예를 통한 설명. 20 자의 varchar 필드가 있다고 가정 해 보겠습니다. 이 필드를 만들 때 MySQL은 기본적으로 32 바이트 (바이트인지 아닌지 확실하지 않음)를위한 공간을 예약하지만 20 만 입력 할 수 있습니까?
거대한 테이블을 위해 디스크 공간을 최적화하는 것이 걱정되는 것 같습니다.
해결 방법
질문에 답하기 위해 MySql 디스크에서 1 + 데이터를 저장하기 위해 필드에서 사용되는 크기를 사용합니다 (따라서 열이 varchar (45)로 선언되고 필드가 "FooBar"인 경우 디스크에서 7 바이트를 사용합니다. 물론 멀티 바이트 문자 집합을 사용하는 경우가 아니라면 14 바이트를 사용합니다. 따라서 열을 선언하더라도 스토리지 측에는 차이가 없습니다 (대규모 테이블에 대한 디스크 최적화에 대해 걱정한다고 말했습니다). 그러나 MySql이 임시 테이블 (SORT, ORDER 등)을 만들 때 VARCHAR가 CHAR로 변환되고 단일 페이지에 들어갈 수있는 레코드가 많을수록 메모리가 적고 테이블 스캔 속도가 빨라지므로 쿼리에 차이가 있습니다. 있다.
참조 페이지 https://stackoverflow.com/questions/1151667
반응형
'MySql' 카테고리의 다른 글
MySQL 저장 프로 시저와 복잡한 쿼리 (0) | 2021.02.04 |
---|---|
MySQL에서 기본 키가 아닌 필드를 auto_increment해야합니다. (0) | 2021.02.04 |
MySQL 테이블에서 다른 mysql로 일부 열을 복사하는 방법 (0) | 2021.02.04 |
MySQL SQL은 열의 여러 값을 하나의 셀로 결합 (0) | 2021.02.04 |
MySQL MySqlParameterCollection.AddRange를 사용하는 방법 (0) | 2021.02.04 |
댓글