초보 개발자

SQLite의 장점, 한계, 한계 극복점 본문

SQL

SQLite의 장점, 한계, 한계 극복점

taehyeki 2025. 1. 4. 15:13

노마드 코더의 SQL마스터 과정에서 SQLite를 배운다.

SQLite에 대한 영상의 내용을 간단히 정리해보았다.

 

https://youtu.be/ax-Q1iedXJA?si=qGyALsh1WuVChORA

 

SQLite의 장점

  1. 작고 간편함
    • 임베디드 데이터베이스로, 데이터베이스 서버를 따로 운영할 필요 없이 애플리케이션에 내장하여 사용할 수 있습니다.
    • 데이터베이스는 단일 디스크 파일로 관리되며, 이를 사용하기 위한 라이브러리는 750KB에 불과해 매우 가볍고 효율적입니다.
  2. 속도 (빠름)
    • 별도의 서버를 두지 않고 파일 형태로 데이터를 관리하므로, 네트워크 지연 시간이나 서버 응답 대기 없이 빠른 속도로 읽기/쓰기가 가능합니다.
    • 특히 RDS나 클라우드 기반 데이터베이스에 비해 빠르며, 서버와의 연결 대기 시간이 없으므로 더 빠른 데이터 액세스가 가능합니다.
  3. 신뢰성
    • 오픈소스지만, 코드 오염 위험이 적고 안정성이 뛰어납니다.

SQLite의 한계

  1. 동시성 문제
    • 이전 버전에서는 동시 쓰기에 문제가 있었다. 쓰기가 들어오면 다른 쓰기에 Lock이 걸리기 때문이다. 따라서 동시에 많은 요청이 들어오는 경우 성능 문제가 발생할 수 있었습니다.
  2. 확장성 및 중앙 집중화 부족
    • SQLite는 중앙 집중화된 서버 아키텍처가 아니므로, 여러 서버에서 동일한 데이터베이스를 공유하는 데 어려움이 있습니다. 이는 여러 서버가 동일한 데이터베이스 파일을 동시에 접근하는 구조에서 문제가 될 수 있습니다.
  3. 데이터베이스 크기 제한
    • SQLite는 최대 데이터베이스 크기가 281TB로 제한되어 있으며, 이 이상의 데이터가 쌓이면 문제가 발생할 수 있습니다. 

SQLite 한계 극복 방법

  1. 동시성 문제 해결
    • 최근 동시 읽기 및 쓰기를 지원하기 시작했으므로, 기존보다 더 나은 성능을 제공합니다.
    • 그러나 밀리초 수준의 동시 쓰기가 매우 많은 시스템에서는 여전히 SQLite의 성능이 한계에 도달할 수 있습니다. 
  2. 확장성 및 중앙 집중화 문제 해결
    • 서버리스 아키텍처를 채택하거나, TursoCloudflare D1과 같은 플랫폼을 활용하면 여러 서버에서 SQLite 파일을 안전하게 공유할 수 있습니다. 이는 네트워크 상에서 SQLite 파일을 공유하고, 동시에 여러 인스턴스에서 접근할 수 있도록 해 줍니다.
  3. 대규모 데이터베이스 크기 처리
    • 281TB는 대부분의 경우 너무 크기 때문에 일반적인 사용에서는 문제가 되지 않습니다. 그러나 데이터 크기가 계속해서 증가할 경우, SQLite보다 더 강력한 MySQL이나 PostgreSQL로 이전하는 것이 더 나은 선택일 수 있습니다.
    • 데이터 아카이빙 또는 샤딩을 통해 데이터의 크기를 분산시키는 방법도 고려할 수 있습니다.