2010-03-29 5 views
0

나는 이런 식으로 뭔가를 판별 자 컬럼 대신 char 또는 NVARCHAR의 INT를 사용하는 의미가 않습니다 char (1) 대신 int를 사용하는 것이 더 빠르거나 더 잘 작동할까요?은 내가 FK로 사용하고있는 경우도

+0

다른 이름을 가진 동일한 테이블이 실제로 있습니까? – Leslie

+0

noup, 당연히 아닙니다. 데이터의 많은 행을 얻는다면 기본 아이디어 – Omu

답변

1

(데이터베이스 테이블에서 데이터를 가져올 때, 그것은 .... 바이트 크기에없는) : "auser.id"와 "buser.id"외래 키 백업하는 것이 "account.id"ID 열에 ?? 모든 것이 동기화 될 수 있는지 확인하는 것이 어렵습니다. 계정에 삽입 할 때 ID (예 : 1)를 입력하고 "a"를 입력하면 "auser"에 삽입 할 때 id (1)와 FK를 "account"로 가져오고 "buser"에 어떻게 삽입합니까 (그리고 id 1) 및 1, b로 계정을 다시 fk ??

진짜 질문에. Size UserType을 가질 값의 수를 지정합니다. CHAR (1)을 몇 개만 사용하는 것이 가장 좋으면 인덱스의 메모리 사용량이 줄어 듭니다. char (1) 이상을 보유 할 수 있다면 int (0-255, 1 바이트)로 가고, 필요하면 int (2,147,483,647, 4)가 더 필요한 경우 smallint (32k, 2 바이트)로 이동하십시오. byte)

+0

여기에 귀하의 질문에 대한 답변이 있습니다. http://consultingblogs.emc.com/davidportas/archive/2007/01/08/Distributed-Kys-and-Disjoint-Subtypes.aspx – Omu

+0

링크의 예에서 IDENTITY/자동 증가 열에 대한 언급. "usera"및 "userb"테이블에서 ID를 삭제하지 않으면 예제가 작동하지 않습니다. 계정에 ID 값만 생성하고 "usera"및 "userb"에 ID 값만 사용하고 거기에 생성하지 마십시오 ("usera"및 "userb"). –

+0

네, 미안 해요, 그/나 테이블에 신원이 없어, 미안 해요 내 질문을 편집했습니다 – Omu

2

대부분의 최신 데이터베이스에서 중요하지 않습니다. int는 괜찮습니다.

char도 마찬가지이다.

왜 IDENTITY 열을 필요

+0

을 보여주었습니다. 인덱스에 메모리가 낭비되고 CHAR (1)이 충분하면 INT를 사용하여 페이지 당 적은 행을 얻게됩니다. 효과. 컬럼에 가장 적합한 크기를 선택하는 것이 가장 좋습니다. 이것은 5 분 동안 게으르다면 컴퓨터 리소스를 낭비 할 수있는 문제 유형입니다. –

1

char (1)은 1 바이트이고 int는 4 바이트입니다. 작은 int조차 2 바이트입니다.