본문 바로가기
프로그래밍 놀이터/Database

[SQLite3] 02. SQLite3 설치

by 돼지왕 왕돼지 2018. 5. 17.
반응형

[SQLite3] 02. SQLite3 설치


이 글은 "빠르게 활용하는 모바일 데이터베이스 SQLite3” 이란 글을 보며 필요한 내용만 정리한 글입니다.

자세한 내용은 책을 구매해서 보세요

.exit, .help, amalgamation, default value, FTS, full text search, mutex, r-tree, sqlite lib, sqlite library, sqlite threadsafe, sqlite.c, sqlite3 lib, sqlite3 library, sqlite3 설치, SQLITE_THREADSAFE, [SQLite3] 02. SQLite3 설치, 동기화, 뮤텍스, 뮤텍스 활성화, 성능 저하, 코드 합병


-

SQLite3 은 프로그램에 라이브러리 형태로 포함되어 사용된다.

SQLite 홈페이지에서 배포되는 SQLite3 라이브러리를 내려 받아 프로그램에서 사용 가능한 형태로 만들면 된다.

기본적으로 SQLite3 라이브러리는 C 코드를 압축한 형태로 배포되므로 이를 컴파일할 수 있다면 어떤 OS 에서도 사용할 수 있다.

윈도우, 리눅스, 맥 OS X 등에서는 컴파일된 바이너리 자체를 직접 내려 받을 수도 있다.



SQLite3 라이브러리


SQLIte3 의 핵심 엔진으로 프로그램에서 이것을 이용해 DB 를 대상으로 CRUD 를 할 수 있다.



커맨드 라인 프로그램


-

리눅스의 Shell, 윈도우의 명령 프롬프트 과 같은 Command Line 에서 SQLite3 DB 에 접근할 수 있는 도구이다.

내부적으로 SQLite3 엔진을 내장하고 있어 별도로 SQLite3 를 설치하지 않아도 된다.



-

커맨드 라인 프로그램에서의 명령은 . 을 붙이고 수행한다.

.help, .exit 등이 있다.



-

SQLIte3 lib 은 핵심이 되는 엔진과 FTS( Full Text Search), R-Tree 등의 추가 기능을 포함해 총 90여 개의 파일로 구성되어 있다. (3.6.11 기준 20여 개의 헤더와 70여 개의 C 파일)

관리 효율성과 컴파일 과정의 성능 향상을 위해 sqlite.c 라는 하나의 파일로 합쳐서 배포하며, 이러한 배포 방식을 SQLite 코드 합병(amalgamation) 이라고 한다.


c 파일과 마찬가지로 헤더 파일에 포함된 API 에 대해서도 하나의 파일로 만들어서 함께 배포하므로 개발자는 이 파일만 인클루드하면 모든 SQLite3 API 를 이용할 수 있다.



-

SQLITE_THREADSAFE 가 1 또는 2로 정의되면 SQLite3 lib 엔진에서 내부적으로 동기화를 위한 뮤텍스(mutex)가 활성화되며, 이 때 동기화를 위한 내부적인 연산으로 약간의 성능 저하가 발생한다.

작성중인 프로그램이 단일 스레드에서 동작하고 성능이 가장 중요하다면 SQLITE_THREADSAFE 값을 0 으로 해서 mutex 를 비활성화 할 수 있다.

default 는 1이며, 컴파일되어 배포되는 라이브러리도 1이 기본값이다. ( 즉 기본적으로 thread safe 하다. )




반응형

댓글