Are there any techniques or tools to work with SQLite on a medium size/traffic/concurrency DB environment?
3 Answers
SQLite is an embedded database and it is not intended to be used as a client/server DB. If you really want to, you can use SQLitening.
What SQLitening is
SQLitening is a client/server implementation of the very popular SQLite database.
SQLitening is a programmer's library in standard Win32 DLL form. It is installed as a standard Windows Service. In addition to client/server mode, the library allows the programmer to also access SQLite databases in local mode. In either mode (local or client/server), the database is extremely fast and robust. -- Source: http://www.planetsquires.com/sqlite_client_server.htm
As stated before sqlite is not a client-server application and it is not built for highly concurrent operations.
Nevertheless you can "make it client-server", if you use ssh.
ssh user@host sqlite3 databasefile select * from table
works.
-
1Is this considered "client-server" because you've encrypted the connection? Jan 18, 2018 at 16:06
-
5No, it is just because of a network between the machine which hosts the db and the machine accessing the db.– ddeimekeJan 20, 2018 at 7:26
-
1This will not work if the shell expands
*
to a list of all files in the current folder, which it does. May 9, 2022 at 15:01 -
2
No, SQLite doesn't present a network endpoint - it is only accessible via the filesystem. It does support concurrent access from multiple processes on the same machine but at a very coarse-grained level (DML locks an entire table). So you could have a dozen Apache httpd processes all with a SQLite database on the local disk open, all doing SELECT
s and it would work just fine. But really, it's the wrong tool for the job - I'd use Postgres in this scenario.