%% generate tags start %% #software-engineering %% generate tags end %% #software-engineering/database > [!info] read more > [How SQLite Works](https://www.sqlite.org/howitworks.html) ## SQLite Is Different From Most Other SQL Databases There are many SQL-based database management systems available, besides SQLite. Common options include MySQL, PostgreSQL, and SQL-Server. All these systems use the SQL langauge to communicate with the application, just like SQLite. But these other systems different from SQLite in important respects. 1. SQLite is a [serverless](https://www.sqlite.org/serverless.html) software library, whereas the other systems are client-server based. With MySQL, PostgreSQL, SQL-Server, and others, the application sends a message containing some SQL over to a separate server thread or process. That separate thread or process performs the requested I/O, then send the results back to the application. But there is no separate thread or process with SQLite. SQLite runs in the same address space as the application, using the same program counter and heap storage. SQLite does no interprocess communication (IPC). When an application sends an SQL statement into SQLite (by invoking a the appropriate SQLite library subroutine), SQLite interprets the SQL in the same thread as the caller. When an SQLite API routine returns, it does not leave behind any background tasks that run separately from the application. 2. An SQLite database is a single ordinary file on disk (with a [well-defined file format](https://www.sqlite.org/fileformat2.html)). With other systems, a "database" is usually a large number of separate files hidden away in obscure directories of the filesystem, or even spread across multiple machines. But with SQLite, a complete database is just an ordinary disk file.