엔진에 따라 다릅니다. 일반적인 지혜는 읽기가 저렴하고 여기에서 몇 바이트이며 중소 규모 데이터베이스의 성능에 큰 영향을 미치지 않는다는 것입니다.
더 중요한 것은 기본 키를 사용할 용도에 따라 다릅니다. 정수 직렬은 사용 및 구현이 간단하다는 장점이 있습니다. 또한 직렬화 방법의 특정 구현에 따라 대부분의 데이터베이스가 일련 번호를 즉시 가져 오는 대신 고정 된 위치에 저장하기 때문에 빠르게 파생 할 수 있다는 이점 Select max(ID)+1 from foo
이 있습니다.
문제는 다음과 같습니다. 5 자 키는 어떻게 귀하와 응용 프로그램에 "의미있는 가치"를 제공합니까? 이 값은 어떻게 생성되며 증가하는 일련 번호를 찾는 것보다 다소 시간이 걸립니다. 작은 정수의 공간이 일부 정수로 저장되어 있지만 대부분의 시스템은이 공간 절약을 무시합니다.
"키"를 사용할 수 없기 때문에 문자 구성표 에 자동 엔진 이 없어야한다는 것을 제외하고는 성능에 영향을주지 않습니다 . 특정 도메인의 경우 인공 키를 사용하지 말고 중국어, 일본어 및 태국어를 키 이름으로 사용하십시오. 가능한 모든 응용 프로그램에 대해 고유성을 보장 할 수는 없지만, 스코프에서는 무시 무시하고 강제적 인 5 자 약어 대신 사용하는 것이 훨씬 합리적입니다. 수백만 개의 튜플에 도달 할 때까지 성능에 큰 영향을 미치지 않습니다.
또는 특정 지역 요리 (광동어, 사천, 시칠리아, 움 브리아, 칼라브리아, 유 카테 칸, 오 악사 칸 등)가 아닌 원산지별로 추적하는 경우 항상 ISO 3166 코드를 사용할 수 있습니다 .
10,000 개의 레시피를 가지고 있다면 5 자 및 20 자 키의 차이가 더해지지 않습니까?
공간이 싸다 . OLAP 작업을 수행하는 10,000,000 개의 레시피를 이야기 할 때는 아마도 가능합니다. 10k 레시피로 150k의 공간을보고 있습니다.
그러나 다시, 그것은 달려 있습니다. 수백만 개의 레코드가 있고 조인을 수행하는 경우이 사소한 것 (구체화 된보기로)에 대한 조회를 비정규 화하는 것이 좋습니다. 모든 실제적인 목적을 위해, 5 개의 문자 키와 가변 길이 키 사이의 현대 기계에서 상대 결합 효율은 매우 유사합니다. 행복하게도, 우리는 많은 CPU와 많은 디스크의 세계에 살고 있습니다. 불쾌한 것은 문자별로 비교하기보다는 조인 및 쿼리 비 효율성 이 너무 많습니다 . 그 말로 항상 테스트하십시오 .
이 수준의 P & T는 데이터베이스에 의존하기 때문에 일반화가 매우 어렵습니다. 데이터베이스의 두 가지 샘플 모델을 빌드하고 예상 레코드 수로 채우고 어느 것이 더 빠른지 확인하십시오. 내 경험상, 문자 길이는 좋은 인덱스, 좋은 메모리 구성 및 기타 중요한 성능 조정 요소와 비교하여 큰 차이를 만들지 않습니다.