J'ai récemment lu cette Question à propos de SQLite vs MySQL et la réponse a montré que SQLite n'évoluait pas bien et que le site officiel le confirmait .
Quelle est la taille de SQLite et quelles sont ses limites?
J'ai récemment lu cette Question à propos de SQLite vs MySQL et la réponse a montré que SQLite n'évoluait pas bien et que le site officiel le confirmait .
Quelle est la taille de SQLite et quelles sont ses limites?
Hier, j'ai publié un petit site* pour le suivi de vos rep utilisé un partage de base de données SQLite pour tous les visiteurs. Malheureusement, même avec le modeste de la charge qu'il a mis sur mon hôte, il a couru très lentement. C'est parce que l'ensemble de la base de données a été verrouillé chaque fois que quelqu'un a consulté la page parce qu'il contient des mises à jour/inserts. Je me suis vite passé à MySQL et bien que je n'ai pas eu beaucoup de temps pour le tester, il semble beaucoup plus évolutive que SQLite. Je me souviens juste de ralentir le chargement de la page et parfois obtenir une base de données verrouillée erreur lorsque vous tentez d'exécuter des requêtes à partir de l'interpréteur de commandes dans sqlite. Cela dit, je suis en cours d'exécution à un autre site de SQLite très bien. La différence est que le site est statique (c'est à dire que je suis la seule qui peut changer la base de données) et il fonctionne très bien pour simultanées lit. Morale de l'histoire: seule l'utilisation de SQLite pour les sites web où les mises à jour de la base de données se produisent rarement (moins souvent que chaque page chargée).
edit: je viens de réaliser que je ne peut pas avoir été juste à SQLite - je n'ai pas d'index des colonnes dans la base de données SQLite quand j'étais à servir à partir d'une page web. Cette partie imputable au ralentissement de la que je vivais. Cependant, l'observation de la base de données de verrouillage de stands - si vous avez particulièrement lourdes mises à jour, SQLite performance ne correspond pas MySQL ou Postgres.
un autre edit: Depuis que j'ai posté ce presque 3 mois j'ai eu l'occasion d'examiner de près l'évolutivité de SQLite, et avec quelques astuces, il peut être très évolutive. Comme je l'ai mentionné dans ma première édition, la base de données des indices de réduire considérablement le délai de requête, mais c'est plus une observation générale sur les bases de données qu'il est à propos de SQLite. Cependant, il est une autre astuce que vous pouvez utiliser pour accélérer SQLite: les transactions. Chaque fois que vous avez à faire plusieurs écritures de base de données, les mettre à l'intérieur d'une transaction. Au lieu d'écrire (et de verrouillage) le fichier à chaque fois une écriture de la requête est émise, l'écriture ne sera possible une fois l'opération terminée.
Le site que j'ai mentionné que j'ai publié dans le premier paragraphe a été remis à SQLite, et ça marche plutôt bien une fois que je l'écoute de mon code en quelques endroits.
* le site n'est plus disponible
Sqlite est évolutive en termes de mono-utilisateur, j'ai plusieurs gigaoctets de données qui fonctionne très bien et je n'ai pas eu beaucoup de problèmes avec elle.
Mais il est mono-utilisateur, donc, cela dépend de quel type de mise à l'échelle vous parlez.
En réponse aux commentaires. Notez qu'il n'y a rien qui empêche l'utilisation d'une base de données Sqlite dans un environnement multi-utilisateur, mais à chaque transaction (en effet, chaque instruction SQL qui modifie la base de données) prend un verrou sur le fichier, ce qui empêche les autres utilisateurs d'accéder à la base de données à tous.
Donc, si vous avez beaucoup de modifications apportées à la base de données, vous êtes essentiellement va frapper de mise à l'échelle des problèmes très rapide. Si, d'autre part, vous avez beaucoup de l'accès en lecture par rapport à l'accès en écriture, il pourrait ne pas être si mauvais.
Mais Sqlite sera bien sûr fonction dans un environnement multi-utilisateur, mais il ne sera pas effectuer .
SQLite lecteurs de la sqlite.org site web et d'autres qui ont beaucoup de trafic. Ils suggèrent que si vous avez moins de 100 visites par jour, SQLite devrait fonctionner correctement. Et qui a été écrit avant qu'ils ont livré la "Writeahead Journalisation".
Si vous voulez accélérer les choses avec SQLite, procédez de la manière suivante:
Vous pouvez prendre un coup d'oeil à ma vidéo sur YouTube appelé "Améliorer SQLite Performance Avec Writeahead Journalisation", qui montre comment utiliser write-ahead logging et démontre un 5x amélioration de la vitesse pour l'écrit.
Sqlite est une base de données de bureau ou in-process . SQL Server, MySQL, Oracle et leurs frères sont des serveurs .
Les bases de données de bureau ne sont par nature pas un bon choix pour toute application qui doit prendre en charge l'accès simultané au magasin de données. Cela inclut à peu près tous les sites Web créés.
Avez-vous lu ce SQLite docs - http://www.sqlite.org/whentouse.html ?
SQLite généralement sera parfait comme le moteur de base de données de faible à moyenne le trafic des sites web (c'est-à-dire, 99,9% de tous les sites web). La quantité de trafic web que SQLite peut gérer dépend, bien sûr, sur la façon dont beaucoup de la site web utilise sa base de données. En général générale, tout site qui devient de moins en moins de 100K hits/jour devrait fonctionner correctement avec SQLite. Le 100K hits/jour figure est une estimation conservatrice, qui n'est pas dur la limite supérieure. SQLite a été démontrée à travailler avec 10 fois que la quantité de trafic.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.