È possibile utilizzare SQLite come database client-server? [chiuso]


32

Esistono tecniche o strumenti per lavorare con SQLite in un ambiente DB di medie dimensioni / traffico / concorrenza?


3
Puoi dare una ragione per cui questa sarebbe una cosa utile da avere? Altrimenti penso che meriti di essere chiusa come una vera domanda. SQLite non è un database client-server ed è realmente commercializzato alla folla che non ha bisogno di un database client-server.
jcolebrand

1
@Eelke anche se questo non è più vero in modalità WAL dalla versione 3.7 - può esserci solo una scrittura alla volta, ma "i lettori non bloccano gli scrittori e uno scrittore non blocca i lettori"
Jack Douglas

1
per inciso, Wikipedia attualmente sembra avere questo errore
Jack Douglas,

2
Perché? Penso che dovresti definire le tue esigenze ... e forse troverai una base di dati più adatta ...
AK_

3
@AK_ I requisiti principali sono ACID completo e database molto semplice da sviluppare e utilizzare. Abbiamo creato una versione personalizzata per funzionare come client-server e il risultato è semplicemente fantastico! Le persone stanno sottovalutando la capacità di SQLite e prevalente la necessità di concorrenza per le piccole aziende. Le persone hanno bisogno di aprire la mente. Seguire la ricetta non è l'unico modo per andare. Ora abbiamo un prodotto senza concorrenza nel nostro mercato.
Maniero,

Risposte:


25

SQLite è un database incorporato e non deve essere utilizzato come DB client / server. Se vuoi davvero, puoi usare SQLitening .

Che cos'è SQLitening

SQLitening è un'implementazione client / server del database SQLite molto popolare.

SQLitening è una libreria di programmatori in formato DLL Win32 standard. È installato come un servizio Windows standard. Oltre alla modalità client / server, la libreria consente al programmatore di accedere anche ai database SQLite in modalità locale. In entrambe le modalità (locale o client / server), il database è estremamente veloce e robusto. - Fonte: http://www.planetsquires.com/sqlite_client_server.htm


4
Puoi elaborare o fornire un collegamento a Cos'è SQLitening? Quel link va a un forum e non ha una parola su cosa sia effettivamente.
develCuy

17

Come affermato in precedenza, sqlite non è un'applicazione client-server e non è stata creata per operazioni concomitanti.

Tuttavia puoi "renderlo client-server", se usi ssh.

ssh user@host sqlite3 databasefile select * from table

lavori.


1
Questo è considerato "client-server" perché hai crittografato la connessione?
Robert Harvey,

No, è solo a causa di una rete tra la macchina che ospita il db e la macchina che accede al db.
Ddeimeke,

4

No, SQLite non presenta un endpoint di rete: è accessibile solo tramite il file system. Si fa supporta l'accesso simultaneo di più processi sulla stessa macchina, ma ad un livello molto grana grossa (DML blocca un'intera tabella). Quindi potresti avere una dozzina di processi httpd di Apache tutti con un database SQLite sul disco locale aperto, tutto ciò SELECTche fa e funzionerebbe bene. Ma davvero, è lo strumento sbagliato per il lavoro: in questo scenario utilizzerei Postgres .


1
blocca un'intera tabella Solo quando stai scrivendo su di essa non leggendo molti processori puoi leggere dalla stessa tabella;)
ucefkh

3

Paradigma Software introduce Valentina Server 6.0 (ora in beta test), che è 3 in 1:

  • Valentina DB Server
  • Valentina SQLite Server
  • Valentina Report Server

SQLite Server utilizza il motore SQLite senza modifiche, abilitato WAL. SQLite Server funziona su 3 sistemi operativi: Mac, Win, Linux .

È possibile utilizzare l'applicazione Valentina Studio (gratuita) per gestire questo DB Server, nonché mySQL, postgreSQL, SQLite, MS SQL. Funziona anche come applicazione nativa in C ++ su 3 sistemi operativi.

SQLite Server contiene funzionalità come: SSL, ACL, backup, API REST, canali di notifica, JSON, XML.

In questo momento l'accesso a questo server può essere fatto da C ++, Xojo e LiveCode. A breve verranno aggiunti PHP, Java, .NET.

Include la versione gratuita di Valentina Server

  • 10 connessioni a DB SQLite
  • 5 connessioni ai DB Valentina
  • 5 collegamenti a rapporti Valentina

Dettagli che puoi leggere nell'articolo .


2

SQLabs offre un prodotto commerciale chiamato cubeSQL che può soddisfare le tue esigenze.


1

Puoi hackerare qualcosa insieme usando netcat , ma non riesco a immaginare che sarebbe una soluzione molto elegante.


-5

È possibile utilizzare un servizio simile a dropbox . Ci soluzioni self-hosted. Tuttavia, SQLite3 non è stato creato per un modello client-server. Sarebbe meglio con altre soluzioni che sono state sviluppate dal modello client-server.


5
Dropbox e altri servizi di sincronizzazione dei file NON SONO una soluzione a questo problema. Dropbox non contiene alcuna logica per quanto riguarda l'unione delle modifiche in un database in cui più utenti scrivono contemporaneamente. Il risultato finale saranno dati, lavoro e tempo persi.
jptros,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.