43

Are there any techniques or tools to work with SQLite on a medium size/traffic/concurrency DB environment?

0

3 Answers 3

33

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

1
  • URL above is no longer valid Commented May 27 at 20:59
27

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.

4
  • 1
    Is this considered "client-server" because you've encrypted the connection? Commented Jan 18, 2018 at 16:06
  • 5
    No, it is just because of a network between the machine which hosts the db and the machine accessing the db.
    – ddeimeke
    Commented Jan 20, 2018 at 7:26
  • 1
    This will not work if the shell expands * to a list of all files in the current folder, which it does. Commented May 9, 2022 at 15:01
  • 2
    I think you could wrap the SQL statement in quotes Commented Apr 1, 2023 at 12:19
8

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 SELECTs and it would work just fine. But really, it's the wrong tool for the job - I'd use Postgres in this scenario.

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.