IT 뉴스를 읽다가 발견한 재미난 뉴스가 하나 있었다.
- https://news.hada.io/topic?id=16044
어!? SQLite는 그냥 가벼운 맛에 사용하는 database 아니었나!?
SQLite에서 발표한 내용이라 믿지 못할 수 있지만, 테스트한 내용을 보면 믿을만한 것 같다.
- https://sqlite.org/fasterthanfs.html
그런데, 정말 드라마틱한 속도 차이를 보이는 것은
read latency 그래프에서 보이는 것처럼 Win10과의 비교이다. 빠르다 !!!
하지만, 어디까지나 제한적인 상황에서만 SQLite 사용을 추천하고,
대용량이거나 MSA와 같은 상황에서는 Postgres를 사용하는 것이 훨 나은 선택이다.
- https://news.hada.io/topic?id=6498
가만히 생각해보니 SQLite라는 것을 내가 처음 들어본 것은
Android 초창기에 플랫폼 컴파일 및 App 개발해본답시고 깔짝 깔짝 거릴 때이다.
그렇다! Android에서 지금도 사용하는
튼튼한 안정성을 갖고 있는 훌륭한데이터베이스인 것은 분명하다.
- https://www.epicweb.dev/why-you-should-probably-be-using-sqlite
- https://news.hada.io/topic?id=11561
SQLite에 대한 재미있는 히스토리를 알고 싶으신 분은 다음 인터뷰 내용을 한 번 살펴보기 바란다.
- https://corecursive.com/066-sqlite-with-richard-hipp/
- https://news.hada.io/topic?id=4558
재미있는 사실 중 하나는
토발즈 아저씨(?)가 Linux Kernel 개발을 위해 Git이라는 소스코드 버전관리 도구를 만든 것처럼
리차드 힙(Richard Hipp) 아저씨도 SQLite 개발을 위해 Fossil이라는 소스코드 버전관리 도구를 만들었다!!!
이제 SQLite를 직접 건드려보자.
1. SQLite 확인
어떤 버전을 어떻게 설치하면 되는지 공식 사이트를 통해서 확인해보자.
Download 메뉴에서 제일 앞에 Android를 위한 binary 파일부터 확인된다는 것이 조금 재미있었다 ^^
2. Serverless Architecture
SQLite는 Server-Client Architecture가 아닌 Serverless Architecture 방식이다.
- https://www.sqlite.org/serverless.html
그렇기 때문에 별도의 Server 설치 과정이 없다.
어!? 그러면 위에서 살펴본 SQLite의 다운로드 페이지는 뭐지!?
그냥 Command-Line Tool이다.
3. SQLite Tools in Ubuntu
① Install
Ubuntu 환경에서는 그냥 패키지 설치를 하면 된다.
> sudo apt install sqlite3 |
② Create database
설치된 tool 버전 확인 및 database 생성은 다음과 같이 실행할 수 있다.
> sqlite3 --version > sqlite3 test.db |
③ Create table and example
TABLE 생성 및 간단한 사용 예시는 다음과 같다.
sqlite> CREATE TABLE TEMP ( ...> id INTEGER PRIMARY KEY, ...> name VARCHAR(10), ...> number VARCHAR(10)); sqlite> INSERT INTO TEMP(name, number) VALUES('whatwant', '123456789'); sqlite> SELECT * FROM TEMP; 1|whatwant|123456789 sqlite> .exit |
생성된 database file도 확인할 수 있다.
④ command
중요한 명령어 몇 가지를 보자면 다음과 같다.
Command | Comments |
sqlite3 {database filename} | 데이터 베이스 생성하면서 접속 (기존 데이터베이스가 있으면 읽어들임) |
.open {database filename} | 접속된 상태에서 데이터베이스 생성. 읽기 또는 변경 |
.help | 도움말 |
.database | 데이터베이스 파일 위치 보기 |
.table | 테이블 목록 보기 |
.show | 현재 설정 보기 |
.clone {database filename} | 데이터베이스 복제 |
.mode {option} | select 결과 출력 방식 (list / column) column 방식 추 |
.quit / .exit | 프롬프트 종료 |
4. SQLite Tools in Python
Python을 이용해서 SQLite 사용하는 예시를 확인해보자.
일단 패키지 관리를 위해서 가상환경 설정부터 해놓자.
> python -m venv .venv > source .venv/bin/activate |
소스코드는 다음과 같이 작성했다.
import sqlite3 conn = sqlite3.connect('test.db') cursor = conn.cursor() cursor.execute('SELECT * FROM TEMP') print(cursor.fetchall()) cursor.close() |
실행해보면 다음과 같이 예쁘게 잘 나온다.
SQLite 활용에 대해서 공부하고 싶으신 분은 다음 링크 자료를 참조하면 좋다.
- https://wikidocs.net/book/1530
file-system 사용해서 데이터를 처리하는 경우
SQLite 사용에 대해서도 같이 검토해보면 좋을 것 같다.
'Dev Tools > Database' 카테고리의 다른 글
벡터 데이터베이스 파인콘 맛보기 (Vector Database Pinecone) (0) | 2023.12.17 |
---|---|
Redis 맛보기 (Docker로 Redis 설치해보기) (0) | 2022.07.10 |
PostgreSQL 계정 및 권한 관리 (0) | 2022.03.23 |
pgAdmin4를 Docker로 설치하자 (PostgreSQL Tools) (0) | 2022.03.21 |
PostgreSQL을 Docker로 설치하자 (0) | 2022.03.21 |