JJC's 테크니컬 다이어리

SQLite의 차별화된 특징-가변길이 레코드 본문

SQLite

SQLite의 차별화된 특징-가변길이 레코드

털털한JJC 2009. 9. 30. 15:31
대부분 다른 SQL 데이타베이스엔진에서는 테이블의 각 행을 위해 정해진 디스크공간을 할당한다. 급격한 길이의 변화가 나타나는 BLOB 이나 CLOB 자료를 핸들링하기 위해 특별한 트릭을 쓰게 된다. 하지만 대부분의 테이블에서 VARCHAR(100) 으로 컬럼을 선언하였다면 당신이 컬럼에 저장된 정보의 실제 길이와는 상관없이 DB엔진은 100바이트의 디스크공간을 할당하게 된다.

반면에 SQLite는 행에 실제 정보를 저장하는 데 필요한 딱맞는 용량만을 사용한다. VARCHAR(100) 컬럼에 한 문자를 저장한다면 1바이트의 공간만 소모되는 것이다.(실제 각 컬럼 앞 시작부분의 데이타형식과 길이를 보관하기위한 오버헤드가 있어 2바이트)

SQLite가 가변길이 레코드 사용은 많은 잇점을 가지고 있다. 분명한 것은 결과적으로 더 작은 DB 파일을 만들게 된다. 또한 Disk 입출력을 줄여주어 DB가 더 빠른 속도로 동작되게 해준다. 그리고 가변길이 레코드의 사용으로 SQLite가 정적 타이핑 대신 매니페스트 타이핑의 채택이 가능하게 된 것이다.