Est-il possible d'utiliser SQLite comme base de données client-serveur? [fermé]


32

Existe-t-il des techniques ou des outils pour travailler avec SQLite sur un environnement de base de données de taille moyenne / trafic / simultané?


3
Pouvez-vous donner une raison pour laquelle ce serait une chose utile à avoir? Sinon, je pense que cela mérite d'être clos car ce n'est pas une vraie question. SQLite n'est pas une base de données client-serveur et est vraiment commercialisé auprès de la foule qui n'a pas besoin d' une base de données client-serveur.
jcolebrand

1
@Eelke bien que ce ne soit plus vrai en mode WAL à partir de la version 3.7 - il ne peut y avoir qu'une seule écriture à la fois, mais "les lecteurs ne bloquent pas les écrivains et un écrivain ne bloque pas les lecteurs"
Jack Douglas

1
d'ailleurs, Wikipédia semble
Jack Douglas

2
Pourquoi? Je pense que vous devriez définir vos besoins ... et peut-être trouverez-vous une base de données plus appropriée ...
AK_

3
@AK_ Les principales exigences sont un ACID complet et une base de données très simple à développer et à utiliser. Nous avons construit une version personnalisée pour fonctionner en tant que client-serveur et le résultat est tout simplement incroyable! Les gens sous-estiment la capacité SQLite et le besoin excessif de concurrence pour les petites entreprises. Les gens doivent faire preuve d'ouverture d'esprit. Suivre la recette n'est pas la seule voie à suivre. Nous avons maintenant un produit sans concurrence sur notre marché.
Maniero

Réponses:


25

SQLite est une base de données intégrée et n'est pas destinée à être utilisée comme base de données client / serveur. Si vous le voulez vraiment, vous pouvez utiliser SQLitening .

Qu'est-ce que SQLitening?

SQLitening est une implémentation client / serveur de la très populaire base de données SQLite.

SQLitening est une bibliothèque de programmeur sous forme de DLL Win32 standard. Il est installé en tant que service Windows standard. En plus du mode client / serveur, la bibliothèque permet au programmeur d'accéder également aux bases de données SQLite en mode local. Dans les deux modes (local ou client / serveur), la base de données est extrêmement rapide et robuste. - Source: http://www.planetsquires.com/sqlite_client_server.htm


4
Pouvez-vous élaborer ou fournir un lien vers Qu'est-ce que SQLitening? Ce lien va vers un forum et il n'a pas un mot sur ce que c'est réellement.
develCuy du

17

Comme indiqué précédemment, sqlite n'est pas une application client-serveur et il n'est pas conçu pour des opérations hautement simultanées.

Néanmoins vous pouvez "en faire client-serveur", si vous utilisez ssh.

ssh user@host sqlite3 databasefile select * from table

travaux.


1
Est-ce considéré comme "client-serveur" parce que vous avez chiffré la connexion?
Robert Harvey

Non, c'est simplement à cause d'un réseau entre la machine qui héberge la base de données et la machine accédant à la base de données.
ddeimeke

4

Non, SQLite ne présente pas de point de terminaison réseau - il n'est accessible que via le système de fichiers. Il prend en charge l'accès simultané à partir de plusieurs processus sur la même machine mais à un niveau très grossier (DML verrouille une table entière). Donc, vous pourriez avoir une douzaine de processus Apache httpd tous avec une base de données SQLite sur le disque local ouvert, tous faisant des SELECTs et cela fonctionnerait très bien. Mais vraiment, ce n'est pas le bon outil pour le travail - j'utiliserais Postgres dans ce scénario.


1
verrouille une table entière Seulement lorsque vous écrivez dessus sans lire de nombreux processeurs peuvent lire à partir de la même table;)
ucefkh

3

Paradigma Software présente Valentina Server 6.0 (en test bêta maintenant), qui est 3 en 1:

  • Serveur Valentina DB
  • Valentina SQLite Server
  • Serveur de rapports Valentina

SQLite Server utilise le moteur SQLite sans modifications, WAL activé. SQLite Server fonctionne sur 3 OS: Mac, Win, Linux .

Vous pouvez utiliser l'application Valentina Studio (gratuite) pour gérer ce serveur DB, ainsi que mySQL, postgreSQL, SQLite, MS SQL. Il fonctionne également comme une application native en C ++ sur 3 OS.

SQLite Server contient des fonctionnalités telles que: SSL, ACL, sauvegardes, API REST, canaux de notification, JSON, XML.

À l'heure actuelle, l'accès à ce serveur peut se faire à partir de C ++, Xojo et LiveCode. Bientôt seront ajoutés PHP, Java, .NET.

La version gratuite de Valentina Server comprend

  • 10 connexions aux bases de données SQLite
  • 5 connexions aux bases de données Valentina
  • 5 relations avec Valentina Reports

Détails que vous pouvez lire dans l' article .


2

SQLabs propose un produit commercial appelé cubeSQL qui peut répondre à vos besoins.


1

Vous pouvez pirater quelque chose ensemble en utilisant netcat , mais je ne peux pas imaginer que ce serait une solution très élégante.


-5

Vous pouvez utiliser un service similaire à dropbox . Il existe des solutions auto-hébergées. Cependant, SQLite3 n'a pas été créé pour un modèle client-serveur. Vous seriez mieux avec d'autres solutions qui ont été développées au sol par modèle client-serveur.


5
Dropbox et d'autres services de synchronisation de fichiers NE SONT PAS une solution à ce problème. Dropbox ne contient aucune logique concernant la fusion des modifications dans une base de données vers laquelle plusieurs utilisateurs écrivent simultanément. Le résultat final sera la perte de données, de travail et de temps.
jptros
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.