www.sqlite.org
qui l'a déjà utilisé et qu'est ce qu'il en pense ?
Merci d'avance
www.sqlite.org
qui l'a déjà utilisé et qu'est ce qu'il en pense ?
Merci d'avance
Ils sont gonflesEnvoyé par www.sqlite.org
![]()
Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2
N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD
Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !
oui on note aussi...are parsed but they are not enforced...![]()
Par contre qui s'en ai déjà servi. J'ai l'impression que c'est pire que ocelot en terme de possibilité...
Salut je fais remonter ce thread car je m y interesse en ce momment ,
j ai une base de données MySQL dont je souhaiterais me servir dans une appli C++ en embarqué ( comme SQLLite)
j aimerais du SQL car ma base d origine est en MySQL et donc il faudrait une conversion simple (sqlite etais bien pour ca) et je n ai pas besoin de commandes SQL tres evolués ( juste des simple SELECT avec qq clauses WHERE ...)
donc si qq un connait SQLite ou à autre chose a me conseiller ...
Merci![]()
Arf
je fait les dents dessus
c'est pas mal
y manque les commandes update
les cle etrangéres
la gestion des dates c'est pas le top vu qu'il stock en string
les chiffres à virgule c'est la misere aussi si on utilise le separateur décimal ','
je l'utilise en Delphi avec le composant de aducom
Bonjour,
Je l'utilise avec C++Builder.
Au niveau des possibilités, c'est peut être pas top (ça me suffit), mais ce système est robuste, et totalement gratuit.
j'aime...
Note : mes BD ne sont pas très volumineuses en général.
Sly.
bonjour,
savez vous si en sqlite, il est possible de synchroniser et/ou repliquer plusieurs bases?
ce qui m'interesse c'est la synchronisation de plusieurs bases
j'ai vu qu'en mysql cela était possible avec les fonctions de réplication et les notions maitre/esclave
merci
juste une petite question , est qu'il existe d'autre manager pour sqlite que "sqlite manager" (qui ne nécéssite pas l'installation de php) merci d'avance
Salut,
Je m'intéresse aussi à SQLite.
Je ne peux pas répondre à mumuri, je ne connais que l'appli php clone de phpmyadmin pour sqlite....dsl
Par contre, j'envisage d'utiliser SQLite pour une base de donnée appellée à grandir de façon linéaire, avec, en surestimant, 10'000 lignes de plus par année dans une table. () taille typique d'une ligne 5-50kb ?
Quand je lis :
[edit : il faut que j'apprenne à lire.... enfin la question qui reste est : peut-on éviter ce "rollback journal" ?Very large datasets
When you start a transaction in SQLite (which happens automatically before any write operation that is not within an explicit BEGIN...COMMIT) the engine has to allocate a bitmap of dirty pages in the disk file to help it manage its rollback journal. SQLite needs 256 bytes of RAM for every 1MB of database. For smaller databases, the amount of memory required is not a problem, but when database begin to grow into the multi-gigabyte range, the size of the bitmap can get quite large. If you need to store and modify more than a few dozen GB of data, you should consider using a different database engine.
J'ai réalisé un progiciel de gestion de pharmacie avec PHP5/SQLite mais je l'ai testé seulement sous Windows. J'ai quand même eu de bons résultats : Rapidité, Facilité de programmation et de maintenance de la base, Simplicité d'exploitation,....
A propos, je recherche un hébergeur gratuit supportant PHP 5 / SQLite pour pouvoir faire tester mon appli en ligne par tout le monde.
Je cherche quant à moi un tutoriel en français basique pour utiliser sqlite.Envoyé par ashraf
J'ai fait un essai tout simple en ligne de commande, mais je voudrais connaitre la commande qui permet de faire exécuter un programme qui contient les commandes sqlite.
c'est ce que je cherche aussi, un tutoriel basique pour utiliser sqlite ... en français de préférence ... mais je vais pas faire le difficile ...Envoyé par enicnath
si quelqu'un peut me donner un coup de pouce![]()
Moi j'utilise SQLite mais quand local quoi, je m'en sers plus comme fichier de sauvegarde. Pas trop pousser mais bien suffisant pour beaucoup de projet, j'aime bin moi ^^
Oui c'est sympa SQLite... j'ai decouvert il n'y a pas si longtemps.
Tant pour l'utilisation "normale" qu'en C (par exemple)
Le seul probleme est qu'il n'y a pas de verification des contraintes d'integrite.
Et un deuxieme probleme est son utilisation par plusieurs thread... ca pose probleme vu que la DB est cree a partir d'un seul fichier.
Sinon leur site est pas mal fait, il y a une tres bonne documentation (en anglais c'est vrai... mais c'est de l'anglais technique assez accessible)
Déjà bidouillé un peu en Python et Ruby. C'est bien chiant de pas pouvoir virer des colonnes quand même...
Bonjour,
J'utilise SQLite et, jusqu'à présent, j'en suis très satisfait.
Mekkisoft
bonjour à tous
je voulais savoir si quelqu4un utilise sqlite avec python et comme ça marche?
avez vous des liens à communiquer?
peut-on l'utiliser en mobile 6?
et avec delphi 2006?
Ca fait un an ou deux que j'ai commencé à l'utiliser, pour une raison simple : pas d'autre choix (ouais, les boules au début, tu as tes habitudes sur mysql et... non faut réapprendre un autre truc), c'était isolément et pour une toute petite application... Maintenant je n'utilise plus que ça !
bref, je me dis que c'est le moment de partager un peu tout ce que j'en pense.
J'ai donc fait des bench pour voir un peu ce que ça donne, en plus d'un feeling général, sqlite2 est très robuste mais c'est pas franchement un foudre de guerre question vitesse, enfin ça reste suffisant pour... 98% des applications. Par contre sqlite3 place la barre très très haut en terme de performances, au moins aussi robuste que son petit frère, aussi (ou plus) rapide que myisam (une sacré référence en terme de rapidité, pas comme le innodb...) en écriture, et carrément 2 à 3 fois plus rapideen lecture peu importe la taille de la base ! attention toutefois aux requêtes trop compliquées (jointures en folies) pour lesquelles les résultats peuvent être assez différents.
Au final SQLite3 convient efficacement pour quasiment toutes les applications (on laisse les 2% qui reste à oracle et ses potes) pour peu qu'on soit pas trop exigent sur l'interface d'administration de la base... (faut quand même avouer que c'est pas le pérou, bon perso j'utilise sqliteman sous ouinedoze et pour le web, j'ai fait ma propre appli...)
Il est souvent dit que le talon d'Achille de SQLite est la question des accès concurrents, c'est plus vraiment vrai (je manque de recul pour savoir exactement où une base tunée à mort va cracker mais c'est clairement très au delà de 100 accès concurrents en écriture/seconde sur une machine correcte). SQlite3 a amené de bonnes améliorations dans la gestion des accès concurrents. En fait la base est lockée une fraction de seconde pendant un commit, là est le principal problème.
Il y a deux moyens de contourner ce problème :
- stocker chaque table dans un fichier séparé, ainsi seules les tables en cours d'écriture sont lockées au lieu de locker toute la base.
- la mise en attente. Ca peut sembler évident, sauf que par défaut, si une requête SQLite est confrontée à un lock, elle retourne une erreur ! Ca parait dingue, et pourtant c'est vrai. Cela dit, le mécanisme de mise en attente est implémenté (il ne fonctionne vraiment bien que depuis les versions très récentes de sqlite, ça peut sembler incroyable que ce point crucial n'est pas été mieux traité, mais le projet sqlite a eu jusqu'à peu pour seule ambition de remplacer avantageusement les fichiers de configuration !!), il suffit de l'activer via la fonction sqlite3_busy_timeout.
Malgré tout, il manque encore un élément franchement essentiel pour faire face à un gros trafic : le cache. SQLite ne peut pas, par conception, conserver des résultats de requête d'un client pour les clients suivant. Dans l'avenir, on peut imaginer que ça change (au hasard grâce à un démon genre sqlite_cache chargé de faire passerelle entre les connexions), en attendant il faut faire sans.
Mais là aussi, il existe des moyens de palier à ce vide cruelvia une solution de cache externe qui dépendra de l'environnement de développement.
Enfin, question performances pures, sqlite3 étant parfaitement journalisé (garantie super solide de l'intégrité de la base en cas de coupure brutale de courant), il est inutile de cumuler cette aptitude avec les fonctions de journalisation du système de fichier. En effet, les perf de sqlite sont assez dépendantes des perf du système de fichier, il vaut mieux que ce dernier soit très rapide => je préfère donc du ext2 à du ext3 pour stocker les bases. D'autre part, pour certaines opérations répétitives telles que des batch d'inserts par centaines de milliers, on pourra avantageusement désactiver ponctuellement totalement la journalisation, la synchronisation et travailler en ram (sans filet donc !) :
En conclusion, avec l'intégration dans php 5.3, sqlite est en passe de devenir une solution formidable même si pour l'heure elle nécessite encore quelques "bons réglages" ou "adaptations plus ou moins lourdes" pour vraiment la mettre en face d'un sgbd traditionnel. Autrement dit, non geek s'abstenir.PRAGMA journal_mode = off; PRAGMA synchronous = 0; PRAGMA temp_store = 2;
Pour infoSQlite est la base de données la plus diffusée dans le monde (un certain nombre d'applications l'utilise en interne, dont Firefox, ceci explique cela
)
Pour la petite histoire, concrètement j'utilise sqlite3 avec un php 5.3.1 recompilé auquel j'adjoins xcache pour lequel j'ai développé une petite classe de gestion de cache aux petits oignons, le tout avec lighty pour servir le peuple. Pour ceux que ça intéresse, php est recompilé car la prise en charge de sqlite3 dans php n'est pas encore tout à fait complète (pas d'accès à la fonction sqlite3_busy_timeout), voici la petite modif qui transcende la bêêête :
Pour ceux qui veulent jeter un oeil et trouver l'inspiration pour se bricoler un cache de requêtes, c'est par là que ça se passe :fichier : php-5.3.1/ext/sqlite3/sqlite3.c
fonction : PHP_METHOD(sqlite3, open)
insérer à la ligne 149 (juste avant db_obj->initialised = 1;) :
sqlite3_busy_timeout(db_obj->db, 30000); // Timeout de 30000 millisecondes, soit 30 secondes
et hop on recompile, exemple très basique:
$ rm configure
$ ./buildconf --force
$ CFLAGS="-O2 -march=native" ./configure --prefix=/usr --with-libxml-dir=/usr/lib --with-iconv-dir=/usr --with-pdo-mysql=/usr --with-mysql=/usr --without-pear --disable-ipv6 --with-zlib --enable-mbstring
$ make
$ sudo make install
http://xcache.lighttpd.net/wiki/XcacheApi
chapeau becoupama
C# et PHP sont par nature très différents. Tu as travaillé sur les accès concurrents, moi je les ai exclus mais en ttt de signal, la perf est vraiment importante, pas question de récupérer un message d'erreur et le bouton reload n'est pas entré dans les moeurs
tu devrais faire un tuto
salut,
un tuto? dis moi ce qui te servirait et je vais voir si je peux faire un tuto potable
![]()
Partager