2013-02-18 2 views
3

sqlite 데이터베이스를 사용합니다.
레코드를 추가 할 때 비공유 데이터에 디스크 공간이 사용됩니다. 그러나 null 값을 포함하는 데이터 레코드는 어떻게됩니까? 왜 임 묻는 내가 궁금 널 (null) 데이터와 메신저를 포함 할 레코드의 컬럼 (50 +)와 수백만의 수가 많은 것입니다 경우 정확하게, SQLite는의 record format에서null 데이터를 저장할 때 디스크 공간이 필요합니까?

답변

3

내 데이터베이스를 설계의 가장 효율적인 방법 바이트는 NULL이라는 값을 지정해야합니다.

NULL 값당 하나의 레코드가 있도록 데이터베이스를 정규화하는 경우 해당 NULL 바이트를 저장하지만 비 NULL 값에 대한 추가 오버 헤드가 있습니다. SQLite는의 최소 기록 오버 헤드 is :

  • 두 바이트 셀 포인터,
  • 적어도 1 바이트 페이로드 길이는 rowid에 대한
  • 여러 바이트, 귀하의 경우에 대한
  • , 외국에 대한 몇 가지 바이트 원래 레코드를 가리키는 키입니다.

또한 NULL 값을 별도의 테이블에 저장하면 효율적인 조회를 위해 색인이 필요할 수 있습니다.

관련 문제