SQLite는 SQL 언어를 통해 접근할 수 있는 경량 관계형 데이터베이스 엔진입니다 . MySQL이나 PostgreSQL과 같은 기존 데이터베이스 서버와는 달리, SQLite의 특징은 일반적인 클라이언트-서버 아키텍처를 따르는 것이 아니라 프로그램에 직접 통합된다는 점입니다.
전체 데이터베이스 (명령문, 테이블, 인덱스 및 데이터) 는 플랫폼에 독립적인 파일에 저장됩니다. 매우 가벼운 특성 덕분에 많은 소비자용 프로그램에서 사용되며, 최신 스마트폰을 포함한 임베디드 시스템에서도 매우 널리 사용됩니다.
클라이언트-서버 데이터베이스 관리 시스템과 달리 SQLite 엔진은 메인 프로그램과 통신하는 별도의 프로세스가 아닙니다 . 대신 SQLite 라이브러리가 프로그램에 링크되어 프로그램의 필수적인 부분이 됩니다.
이 프로그램은 서브 루틴 및 함수에 대한 간단한 호출을 통해 SQLite의 기능을 사용합니다. 이렇게하면 함수 호출이 프로세스 간 통신보다 효율적이므로 데이터베이스 액세스 대기 시간이 줄어 듭니다.
전체 데이터베이스 (정의, 테이블, 인덱스 및 데이터 자체)는 호스트 시스템에 단일 표준 파일로 저장됩니다. 이 단순한 설계는 각 트랜잭션을 시작할 때 전체 데이터베이스 파일을 잠그는 방식으로 이루어집니다.
SQLite 3.32.0의 새 버전 정보
최근 SQLite 버전 3.32.0이 발표되었는데, 여기에는 여러 가지 변경 사항이 포함되어 있으며, 가장 주목할 만한 점은 ANALYZE 명령의 개선된 버전입니다 . 이를 통해 전체 인덱스 분석 없이도 매우 큰 데이터베이스에서 부분적인 통계를 수집할 수 있습니다 . 단일 인덱스에 대해 스캔할 레코드 수의 제한은 새로운 "PRAGMA analysis_limit" 지시문을 사용하여 설정할 수 있습니다.
SQLite의 새 버전에서 또 다른 변경 사항은 준비된 문의 바이트코드에 대한 정보를 제공하는 새로운 가상 테이블 인 "bytecode" 입니다.
또한, VFS 체크섬 계층이 추가되어 데이터베이스의 각 데이터 페이지 끝에 8바이트 체크섬이 추가되고 데이터베이스에서 데이터를 읽을 때마다 해당 체크섬이 검증됩니다. 이 중간 계층을 통해 저장 장치의 임의 비트 왜곡으로 인한 데이터베이스 손상을 감지할 수 있습니다.
반면에 새로운 SQL 함수 iif (X, Y, Z)가 추가되어 표현식 X가 참이면 Y 값을 반환하고 그렇지 않으면 Z 값을 반환합니다.
이제 INSERT 및 UPDATE 표현식은 CHECK 계산 블록 전에 항상 고정 열 유형 조건을 적용하며, 매개변수 개수 제한이 999개에서 32766개로 증가했습니다.
이번 새 버전의 주요 변경 사항은 다음 과 같습니다.
- 이 텍스트를 숫자 순서로 정렬하기 위해 텍스트에 정수를 고려하는 정렬 시퀀스 구현과 함께 UINT 정렬 시퀀스 확장을 추가했습니다.
- 명령 줄 인터페이스에서 "–csv", "–ascii"및 "–skip"옵션이 ".import"명령에 추가되었습니다.
- ".dump"명령을 사용하면 지정된 마스크에 해당하는 모든 테이블의 출력에서 병합과 함께 여러 LIKE 템플릿을 사용할 수 있습니다. 디버그 빌드를위한 ".oom"명령이 추가되었습니다.
- –bom 옵션이 ".excel", ".output"및 ".once"명령에 추가되었습니다. ".filectrl"명령에 –schema 옵션을 추가했습니다.
- LIKE 연산자로 지정된 ESCAPE 표현식은 이제 PostgreSQL 동작과 일치하는 와일드 카드 문자를 재정의합니다.
마지막으로, 이번 새 버전 출시와 관련하여 더 자세한 내용을 알고 싶으시면 다음 링크에서 변경 사항 목록을 참조하십시오.
방출
새로운 버전의 SQLite를 시스템에 설치하려는 분들은 공식 웹사이트의 다운로드 섹션에서 소스 코드(컴파일용)와 미리 컴파일된 패키지를 다운로드할 수 있습니다.