Sqlite ou MySql? Comment décider? [fermé]

94

Y a-t-il de bonnes règles empiriques sur la façon de décider lequel des deux utiliser?

Et, si vous reprenez une base de données Sqlite, et que le système devrait «devenir beaucoup plus grand», comment décider de rester avec elle ou de passer à MySql?

Mawg dit de réintégrer Monica
la source
1
Considérez FirebirdEmbedded, c'est un mélange très puissant des deux.
Stefan Steiger
1
Vote de clôture trop large. Un doublon possible a été supprimé: stackoverflow.com/questions/3630/sqlite-vs-mysql
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
10
Elle est large maintenant, mais, une fois postée, ce genre de question était acceptable, ou du moins tolérée. J'espère que la question n'est pas supprimée, comme l'éventuel double exemplaire, afin que d'autres puissent encore lire la discussion et les recommandations.
Mawg dit de réintégrer Monica
5
Dommage que les questions qui ont un impact et une visibilité élevés (regardez le nombre de votes positifs ci-dessous) soient fermées par les «moniteurs» de ce site. Ce qui rend tout le processus de surveillance et la sélection des moniteurs assez discutables.
francogrex
2
Les normes, valeurs et objectifs du site ont évolué au fil des années. "Fondé principalement sur l'opinion" n'est plus acceptable. Si je voulais poser cette question aujourd'hui, je demanderais sur softwarerecs.stackexchange.com , pas ici, et j'énumérerais mes besoins pour une base de données et recevrais des recommandations. Je comprends pourquoi ma question a été fermée, mais je suis toujours nostalgique d'une époque où nous avions l'habitude d'avoir une étiquette de livres , et le mot «meilleur» dans un titre ne signifiait pas une fermeture immédiate: - / YMMV
Mawg dit réintégrer Monica

Réponses:

103

Leurs ensembles de fonctionnalités ne sont pas du tout les mêmes. Sqlite est une base de données intégrée qui n'a pas de capacités réseau (sauf si vous les ajoutez). Vous ne pouvez donc pas l'utiliser sur un réseau.

Si tu as besoin

  • Accès au réseau - par exemple accès depuis une autre machine;
  • Tout degré réel de concurrence - par exemple, si vous pensez que vous êtes susceptible de vouloir exécuter plusieurs requêtes à la fois, ou d'exécuter une charge de travail qui comporte de nombreuses sélections et quelques mises à jour, et que vous souhaitez qu'elles se déroulent correctement, etc.
  • beaucoup d'utilisation de la mémoire, par exemple, pour mettre en mémoire tampon des parties de votre base de données de 1 To dans vos 32 Go de mémoire.

Vous devez utiliser mysql ou un autre SGBDR basé sur un serveur.

Notez que MySQL n'est pas le seul choix et qu'il y en a plein d'autres qui pourraient être meilleurs pour les nouvelles applications (par exemple pgSQL).

Sqlite est un très, très bon logiciel, mais il n'a jamais prétendu faire aucune de ces choses que font les serveurs SGBDR. C'est une petite bibliothèque qui exécute SQL sur des fichiers locaux (en utilisant le verrouillage pour s'assurer que plusieurs processus ne gâchent pas le fichier). C'est vraiment bien testé et je l'aime beaucoup.

De plus, si vous ne pouvez pas choisir cela correctement par vous-même, vous devrez probablement embaucher quelqu'un de votre équipe qui le pourra.

MarkR
la source
Donc, fondamentalement, sqllite est une alternative aux fichiers d'accès ms.
dvdmn du
2
Ces trois points sont exactement ce que dit Richard Hipp à: youtu.be/Jib2AmRb_rk?t=1693
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
Par souci de simplicité, j'ai toujours un seul logiciel qui est le seul utilisateur autorisé à accéder à la base de données, même pour les applications en réseau qui utilisent une base de données MySql.
Mawg dit de réintégrer Monica le
57

L'équipe sqlite a publié un article expliquant quand utiliser sqlite qui est une bonne lecture. Fondamentalement, vous voulez éviter d'utiliser sqlite lorsque vous avez beaucoup de concurrence en écriture ou que vous devez évoluer en téraoctets de données. Dans de nombreux autres cas, sqlite est une alternative étonnamment bonne à une base de données "traditionnelle" telle que MySQL.

Josue
la source
11

SQLite prêt à l'emploi n'est pas vraiment complet en matière de concurrence. Vous aurez des problèmes si vous avez des centaines de requêtes Web touchant la même base de données SQLite.

Vous devez absolument utiliser MySQL ou PostgreSQL.

S'il s'agit d'un projet à une seule personne, SQLite sera cependant plus facile à configurer.

Jérôme WAGNER
la source
Par souci de simplicité, j'ai toujours un seul logiciel qui est le seul utilisateur autorisé à accéder à la base de données, même pour les applications en réseau qui utilisent une base de données MySql, mais, obiovusly, en particulier pour Sqlite.
Mawg dit de réintégrer Monica le
10

Mes quelques centimes aux excellentes réponses précédentes. le site www.sqlite.org fonctionne sur une base de données sqlite. Voici le lien lorsque l'auteur (Richard Hipp) répond à une question similaire.

Maksee
la source
1
Merci pour le lien, le même auteur poursuit avec un propre atelier qu'il a testé sur un Athlon 1600. 1 Go de RAM. Disque IDE 5400RPM. Redhat 7.3. Il conclut: «Je pense maintenant que SQLite est approprié pour être utilisé comme base de données principale sur les sites Web qui reçoivent jusqu'à 1 million de visites par jour.»
Rutrus