43

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

RolandoMySQLDBA
  • 182,700
  • 33
  • 317
  • 520
Maniero
  • 2,728
  • 6
  • 28
  • 29

3 Answers3

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

Agi Hammerthief
  • 249
  • 4
  • 13
Giorgi
  • 768
  • 5
  • 8
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.

ddeimeke
  • 442
  • 3
  • 7
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.

Gaius
  • 11,200
  • 3
  • 31
  • 64