2010-04-12 2 views

답변

6

데이터 유형에 따라, 그래, 그것은을 않습니다 차.

inttinyint은 눈에 띄는 속도 차이가 없지만 데이터 크기에는 차이가 있습니다. tinyint이 1 바이트 인 경우 int이 4인데, 이는 3 바이트가 모든 행에 저장됩니다. 그것은 잠시 뒤에 합계한다.

varchar에 대해 int 인 경우 정렬과 같은 것이 문자열 값보다 훨씬 빠르기 때문에 약간의 드롭이 발생합니다.

비슷한 유형이고 공간을 많이 차지하지 않는 경우 더 쉽고 견고한 유형으로 이동하십시오.

3

이론적으로는 그렇습니다. tinyint는 int보다 빠릅니다. 그러나 좋은 데이터베이스 디자인과 적절한 인덱싱은 성능에 훨씬 더 큰 영향을 미치므로 디자인의 단순성을 위해 항상 int를 사용합니다. 항상 올바른 데이터 유형을 선택하는 과정의

2

올바른 데이터 형식을 선택하면 성능이 향상 될 수 있습니다. 많은 경우 실제 차이가 크지 않을 수도 있지만 나쁜 선택은 분명 영향을 줄 수 있습니다. 몇 개의 문자로 된 문자열을 저장할 때 varchar 필드 대신에 1000 문자의 char 필드를 사용한다고 상상해보십시오. 그것은 극단적 인 예입니다. 그러나 varchar를 사용하는 것이 훨씬 낫습니다. 아마도 int와 tinyint 사이의 퍼포먼스 차이를 결코 눈치 채지 못할 것입니다. 전반적인 데이터베이스 디자인 (정규화 된 테이블, 좋은 인덱스 등)은 훨씬 더 큰 영향을 미칩니다.

3

나는이 경우 실질적인 성능 차이가 없음을 확신 할 것입니다. 저장 공간이 더 중요한 요소이지만, 그다지 큰 차이는 아닙니다. 차이는 아마도 2 바이트입니까? 500,000 행이 지나면 추가 메가 바이트가 거의 사용되었습니다. 많은 데이터로 작업하는 경우 메가 바이트를 집어 넣지 않기를 바랍니다.

1

성능 고려 사항은 모두 모델 및 용도에 따라 다릅니다. 이러한 현대의 저장소 공간에 대한 고려 사항은 거의 문제가되지 않지만 성능에 대해 고려해야 할 수도 있습니다.

데이터베이스 엔진은 데이터를 페이지라는 청크로 저장하는 경향이 있습니다. SQL Server는 기본적으로 8k 페이지, Oracle 2k 및 MySql 16k 페이지 크기를가집니다. 이러한 시스템 중 큰 것은 아닙니다. 약간의 데이터 (필드와 행)에서 작업을 수행 할 때마다 전체 페이지가 db에서 페치되고 메모리에 저장됩니다. 데이터가 작 으면 (작은 int 대 int) 개별 행과 데이터 항목을 페이지에 넣을 수 있으므로 더 많은 페이지를 가져올 필요가 없어 전반적인 성능이 향상됩니다. 그래서 네, 데이터의 가능한 가장 작은 표현을 사용하면 성능에 영향을 미칩니다. 왜냐하면 db 엔진을보다 효율적으로 사용할 수 있기 때문입니다.

1

성능에 영향을 줄 수있는 한 가지 방법은 데이터를 조작하기 위해 올바른 유형으로 변환하지 않아도된다는 것입니다. 예를 들어 datetime 형식 대신 varchar를 사용하는 경우 사실이며 date 수학 식으로 변환해야합니다.또한 데이터베이스에 페이지를 저장하고 검색하는 방법에 영향을주는 작은 레코드 (최대 크기로 모든 것을 정의하지 않아야 함)를 제공하여 성능에 영향을 미칠 수 있습니다.

물론 데이터의 올바른 유형을 사용하면 데이터 무결성을 도울 수 있습니다. datetime 필드에 존재하지 않는 날짜는 저장할 수 없지만 varchar 필드에는 저장할 수 있습니다. int 대신 float를 사용하면 정수 값 등으로 값이 제한되지 않습니다. float에 관해서는 정확한 유형이 아니므로 반올림 오류가 발생할 때 수학 계산을 수행하려는 경우 일반적으로 사용하는 것이 좋습니다.

관련 문제