What is SQLite?
SQLite is a tiny, file-based database that lives inside your program. It doesn’t need a separate server or complex setup - you just open a single file and start storing data.
Let's break it down
- tiny: very small in size, usually just a few megabytes.
- file-based: all the data is kept in one ordinary file on your disk.
- database: a structured way to keep and retrieve information.
- lives inside your program: the code you write talks directly to SQLite; there’s no outside service.
- doesn’t need a separate server: you don’t have to install or run another piece of software to use it.
- open a single file: you point SQLite at a file path and it creates or uses that file for storage.
- start storing data: you can add, read, change, or delete information right away.
Why does it matter?
Because it lets developers add reliable data storage to apps without the hassle of managing a full-blown database server, saving time, money, and technical overhead.
Where is it used?
- Mobile apps (iOS, Android) keep user settings and offline content in SQLite.
- Web browsers store bookmarks, history, and extensions data with SQLite files.
- Small desktop utilities (e.g., password managers, note-taking apps) use it for local data.
- Internet-of-Things devices embed SQLite to log sensor readings without heavy resources.
Good things about it
- Zero-configuration: just copy the library and start using it.
- Very small footprint: minimal disk space and memory usage.
- ACID-compliant: guarantees safe, consistent transactions.
- Cross-platform: works the same on Windows, macOS, Linux, Android, iOS, etc.
- Public-domain code: free for any purpose, commercial or not.
Not-so-good things
- Not ideal for heavy concurrent write workloads; many writers can cause lock contention.
- Limited scalability: performance drops with very large (multi-gigabyte) databases.
- Fewer advanced features compared to enterprise systems (e.g., no built-in user authentication, limited stored-procedure support).
- No built-in replication or clustering for high-availability scenarios.