int에 비해 varchar는 더 많은 디스크 공간을 차지하고 더 많은 디스크 IO를 가지며 더 많은 메모리 대역폭을 갖습니다. 이는 innodb에서 특히 두드러집니다. innodb 테이블의 보조 인덱스 리프 페이지에는 기본 키 값이 저장되어야 합니다. 기본 키가 varchar이면 보조 인덱스의 크기가 더 커집니다. 게다가 varchar 기본 키는 삽입 중에 데이터를 비순차적으로 삽입하기 쉽기 때문에 인덱스 트리 효율성이 int보다 낮습니다.
char() 유형인 경우 제공되는 값은 5입니다. 그러면 해당 필드에 값이 있든 없든 null도 5×当前数据库编码字节을 차지하게 됩니다. varchar()는 먼저 1바이트를 사용하여 유형의 최대 범위를 기록합니다. 값이 전달되지 않으면 첫 번째 바이트만 기록되며, 값의 최대 범위 내의 내용이 저장됩니다.
int에 비해 varchar는 더 많은 디스크 공간을 차지하고 더 많은 디스크 IO를 가지며 더 많은 메모리 대역폭을 갖습니다. 이는 innodb에서 특히 두드러집니다. innodb 테이블의 보조 인덱스 리프 페이지에는 기본 키 값이 저장되어야 합니다. 기본 키가 varchar이면 보조 인덱스의 크기가 더 커집니다. 게다가 varchar 기본 키는 삽입 중에 데이터를 비순차적으로 삽입하기 쉽기 때문에 인덱스 트리 효율성이 int보다 낮습니다.
이것은 게으름의 상징입니다!
매우 낭비적이고 비전문적입니다.
char() 유형인 경우 제공되는 값은 5입니다. 그러면 해당 필드에 값이 있든 없든
null
도5×当前数据库编码字节
을 차지하게 됩니다. varchar()는 먼저 1바이트를 사용하여 유형의 최대 범위를 기록합니다. 값이 전달되지 않으면 첫 번째 바이트만 기록되며, 값의 최대 범위 내의 내용이 저장됩니다.나머지 필드의 각 레코드가 차지하는 하드 디스크 공간은 별도로 논의됩니다.
위에서 말한 내용은 모두 맞습니다
그가 기록한 내용이 UUID일 수도 있습니다.
많은 jsp 프로그래밍 라이브러리가 라이브러리를 설계할 때 이런 방식인데 왜 그런지는 모르겠습니다