수십억 개의 행이 있고 사용자 이름 (varchar)이있는 사용자 테이블이 있는데 고유 인덱스 대신 기본 키로 사용해야합니까? 여분의 필드 user_id (int)를 추가하고 그 대신에 기본 키를 만드는 장점이나 단점은 무엇입니까? 내가 어디에 join_ 조건에 대한 조인 int에서 조인이 varchar에 조인보다 빠를 것이라고 말하기를 제외하고 user_id를 어디에서 사용할지 모르겠다. 아니면 그게 맞습니까? (두 필드가 모두 인덱싱되기 때문에)데이터베이스 기본 키
업데이트 : 사용자 이름 변경은 옵션이 아닌 것으로 가정합니다.
혹시 사용자가 자신의 사용자 이름을 변경할 수 하시겠습니까? VARCHAR의 기간은 얼마입니까? 후자가 더 긴 키 길이를 갖는 경우, INTEGER에 근거한 | 조는 VARCHAR에서의 | 조보다 더 빠를 수 있습니다. – Rob
아니요 사용자 이름을 변경하지 않기를 바랍니다. – user157195
절대 필요하지 않으실 것입니다. 나는 미래를 예측할 수 있었으면 좋겠다 ... – Rob