
SQLite
SQLite is a lightweight, serverless database engine that runs as an embedded part of an application rather than as a separate server process.
Overview
SQLite is a lightweight, serverless database engine that runs as an embedded part of an application rather than as a separate server process. Created by D. Richard Hipp in 2000, SQLite has become one of the most widely deployed databases in the world, powering everything from mobile apps to web browsers.
Key Characteristics
SQLite stores its entire database in a single file on disk, making it incredibly portable and simple to manage. It requires zero configuration and no separate server process, which means applications can simply read and write to the SQLite database file directly. The database file format is stable, cross-platform, and backwards compatible, ensuring that databases created years ago can still be read by newer versions.
Relationship to DuckDB
DuckDB's architecture was inspired by SQLite's embedded nature, but optimized for analytical rather than transactional workloads. While SQLite excels at handling concurrent writes and maintaining data integrity for applications, DuckDB is designed for efficiently processing large amounts of data for analysis. Both databases can be embedded directly into applications without requiring a separate server process.
Common Use Cases
SQLite serves as the database engine for many popular applications including all Android and iOS devices, Chrome, Firefox, and Safari web browsers. It's ideal for application file formats, small websites, data analysis, and any scenario where simplicity and reliability are prioritized over handling large numbers of concurrent users. The database is also excellent for development and testing since it requires no setup or administration.
Limitations
Unlike client-server databases, SQLite doesn't handle high concurrency well - it uses file-based locking which means only one write operation can occur at a time. It also lacks built-in user management and network access, as it's designed to be used locally within a single application rather than accessed over a network.
Related terms
DuckDB is an embeddable SQL database management system designed for analytical workloads.
ATTACH and DETACH →ATTACH and DETACH let a database session connect to (or disconnect from) additional database files at runtime, enabling cross-database queries without a separate connection.
analytical database →An analytical database, also known as an Online Analytical Processing (OLAP) database, is designed to efficiently handle complex queries and data analysis…
DuckLake →DuckLake is an open table format, created by the DuckDB team, that stores lakehouse metadata in a transactional SQL database instead of files — while keeping the actual data as Parquet files in object storage.
query engine →A query engine parses, optimizes, and executes SQL queries against data sources. Learn its core architecture, how it differs from a database, and see examples like DuckDB and Presto.
Database sharding →Database sharding is a horizontal partitioning technique that splits a large database into smaller, independent pieces called shards, each hosted on a separate server, to scale storage and throughput beyond a single machine.
