SQLite 팁

Insert 속도 빠르게 하기

sqlite에서 insert 할 때 별도의 처리가 없으면 바로 commit을 한다.
수십만개의 데이터를 입력하면 꽤 시간이 걸릴 것이다.

begin을 하고 insert를 하면 commit 명령이 나올때까지 바로 commit을 하지 않는다.

begin

   DB에 데이터 insert

commit

int rst = sqlite3_exec( pSQLite3, "begin;", callback, 0, &szErrMsg );

 

//여러개의 insert 명령어가 실행 될것이다.

rst = sqlite3_exec( pSQLite3, "INSERT INTO member ( name, age ) values ( 'bill', 20 )", callback, 0, &szErrMsg);

 

rst = sqlite3_exec( pSQLite3, "commit;", callback, 0, &szErrMsg );

 

SQLite 데이터 형

NULL:    값이 NULL인 경우.

INTEGER: 부호 있는 정수. 상황에 따라 1, 2, 3, 4, 6, 8 바이트가 저장된다..

REAL:    부동소수점. 8바이트 IEEE 부동소수 규격.

TEXT:    문자(열). 기본적으로 UTF-8으로 저장되며 UTF-16 BE나 UTF-16 LE를 사용할 수 있음.

BLOB:    이진 데이터. 외부에서 전달된 데이터를 그대로 저장됨.