source

mysql에서 varchar(100) 선언과 함께 실제 저장소를 얼마나 사용합니까?

ittop 2023. 9. 14. 23:35
반응형

mysql에서 varchar(100) 선언과 함께 실제 저장소를 얼마나 사용합니까?

varchar(100)를 수락하는 것으로 선언된 필드가 있는 테이블이 있는 경우 실제로 "hello"라는 단어를 삽입하면 실제 스토리지가 mysql 서버에서 얼마나 사용됩니까?또한 varchar(100)가 선언되었음에도 NULL을 삽입하면 스토리지가 사용되지 않게 됩니까?

그에 대한 해답은 무엇이든 간에 여러 데이터베이스 구현 간에 일관성이 있습니까?

varchar(100)를 수락하는 것으로 선언된 필드가 있는 테이블이 있는 경우 실제로 "hello"라는 단어를 삽입하면 실제 스토리지가 mysql 서버에서 얼마나 사용됩니까?

Mysql은 길이에 대해 5바이트와 1바이트를 더해서 저장할 것입니다.varchar가 255보다 크면 길이에 대해 2바이트를 저장합니다.

이 값은 열의 문자 집합에 따라 달라집니다.문자 집합이 utf8인 경우 mysql은 문자당 최대 3바이트가 필요합니다.일부 스토리지 엔진(즉, 메모리)에서는 항상 문자 집합당 최대 바이트 길이가 필요합니다.

또한 varchar(100)가 선언되었음에도 NULL을 삽입하면 스토리지가 사용되지 않게 됩니까?

열을 null로 지정하면 mysql이 행당 null로 지정할 수 있는 열을 최대 8개까지 추가 바이트를 설정해야 합니다.이것은 "널 마스크"라고 불립니다.

그에 대한 해답은 무엇이든 간에 여러 데이터베이스 구현 간에 일관성이 있습니까?

mysql 내의 스토리지 엔진 간에도 일관성이 없습니다!

그건 정말로 당신 테이블의 차 세트에 달려있습니다.

CHAR와 달리 VARCHAR 값은 1바이트 또는 2바이트 길이의 접두사와 데이터로 저장됩니다.길이 접두사는 값의 바이트 수를 나타냅니다.열은 값이 255바이트 이하일 경우 1개의 길이 바이트를 사용하고, 값이 255바이트를 초과할 경우 2개의 길이 바이트를 사용합니다.

- 출처를

UTF-8은 하나 또는 몇 개의 언어를 위해 만들어진 인코딩보다 더 많은 공간을 필요로 합니다.다른 알파벳 스크립트의 문자와 구분 기호가 있는 라틴 문자는 일반적으로 해당 멀티바이트 인코딩에서는 문자당 1바이트를 사용하지만 UTF-8에서는 2바이트를 사용합니다. 동아시아 스크립트는 일반적으로 멀티바이트 인코딩에서는 문자당 2바이트를 사용하지만 UTF-8에서는 문자당 3바이트를 사용합니다.

- 출처를

varchar는 사용된 것만 저장하고 char는 설정된 바이트 수를 저장합니다.

Utf16은 때때로 Utf8보다 데이터를 적게 사용합니다. 일부 희귀 언어의 경우 어떤 언어를 사용할지 모르겠습니다.

여러분, MySql에서 COMPRED 테이블을 사용할 수 있는 옵션이 있습니까?아파치에서처럼.정말 감사해요.

언급URL : https://stackoverflow.com/questions/1790514/how-much-real-storage-is-used-with-a-varchar100-declaration-in-mysql

반응형