Sqlite3-pragma
Overvew
Sqlite3 pragma 내용 정리
List
전체 Pragma 목록
application_id auto_vacuum automatic_index busy_timeout cache_size cache_spill case_sensitive_like cell_size_check checkpoint_fullfsync collation_list compile_options count_changes data_store_directory data_version database_list default_cache_size defer_foreign_keys empty_result_callbacks encoding foreign_key_check foreign_key_list foreign_keys freelist_count full_column_names fullfsync ignore_check_constraints incremental_vacuum index_info index_list index_xinfo integrity_check journal_mode journal_size_limit legacy_file_format locking_mode max_page_count mmap_size page_count page_size parser_trace query_only quick_check read_uncommitted recursive_triggers reverse_unordered_selects schema_version secure_delete short_column_names shrink_memory soft_heap_limit stats synchronous table_info temp_store temp_store_directory threads user_version vdbe_addoptrace vdbe_debug vdbe_listing
table_info()
입력된 table 의 정보를 출력한다. 각각의 라인마다 테이블에 있는 모든 칼럼과 속성을 하나씩 출력한다. table 뿐만 아니라 view 정보도 확인할 수 있다. 각각의 항목별 내용은 아래 순서와 같다.
- Index
- Column name
- Data type
- Set NULL 가능 여부.(0:가능, 1:불가능)
- Default value
- Primary key 여부
sqlite> pragma table_info(plan); 0|uuid|varchar(255)|1||1 1|name|varchar(255)|0|null|0
jounal_mode
Sqlite3 DB의 Journal mode 를 설정한다.
Sqlite3 의 Journal mode 에 대한 자세한 설명은 이곳<ref>https://www.sqlite.org/atomiccommit.html</ref>을 참조하도록 한다.
PRAGMA schema.journal_mode; PRAGMA schema.journal_mode = DELETE | TRUNCATE | PERSIST | MEMORY | WAL | OFF
- DELETE(default)
- Rollback journal file 을 매번 Create/Delete 한다.
- TRUNCATE
- Rollback journal file 을 매번 Create/Delete 하지 않고, 파일 사이즈만을 0으로 설정 후 재활용 한다.
- PERSIST
- 저널링 파일을 지우지 않는다.
- MEMORY
- 저널링 파일을 메모리에서 유지한다. Sqlite3 를 사용하는 어플리케이션에서 장애시 데이터는 유실된다.
- WAL
- 쓰기 요청이 들어오면 변경사항을 먼저 WAL-log 에 기록한다. 이후 일괄적으로 데이터에 반영한다.
- OFF
- 데이터 파일에 직접 기록한다. 문제 발생시 데이터 복원이 불가하다.
WAL(Write Ahead to Log)
Reference
<references/>