Sortie de SQLite 3.6.19
SQLite s'offre la gestion de foreign keys
Le 2009-10-15 07:38:02, par Emmanuel Lecoester, Membre expert
SQLite Release 3.6.19 On 2009 Oct 14 (3.6.19)
Que pensez-vous de cette nouveauté ?
Va-t-elle permettre un nouveau regain d'intérêt pour cette base de données ?
Changes associated with this release include the following:
* Added support for foreign key constraints. Foreign key constraints are disabled by default. Use the foreign_keys pragma to turn them on.
* Generalized the IS and IS NOT operators to take arbitrary expressions on their right-hand side.
* The TCL Interface has been enhanced to use the Non-Recursive Engine (NRE) interface to the TCL interpreter when linked against TCL 8.6 or later.
* Fix a bug introduced in 3.6.18 that can lead to a segfault when an attempt is made to write on a read-only database.
* Added support for foreign key constraints. Foreign key constraints are disabled by default. Use the foreign_keys pragma to turn them on.
* Generalized the IS and IS NOT operators to take arbitrary expressions on their right-hand side.
* The TCL Interface has been enhanced to use the Non-Recursive Engine (NRE) interface to the TCL interpreter when linked against TCL 8.6 or later.
* Fix a bug introduced in 3.6.18 that can lead to a segfault when an attempt is made to write on a read-only database.
Va-t-elle permettre un nouveau regain d'intérêt pour cette base de données ?
-
_skipExpert éminentVoilà qui invalide mon affirmation d'hier...
J'ai essayé il y a 1-2 ans d'insérer tout le contenu d'en-tête d'un newsgroup dans sqlite (uniqueID / Groupe / ArticleId / titre / auteur/ date). Les performance en ajout étaient impressionnantes jusqu'à 100'000 enregistrements (4-5000 insertions secondes). Par contre passé le million ça tombait dans les 200/sec.
A ce que j'ai pu lire, cette lenteur viendrait des contraintes d'unicité qui sont des btree et non des hash index. Je me demande si ce problème est d'actualité.le 15/10/2009 à 8:14 -
Rapha222Membre habituéAbsolument génial \o/.
J'espère que ça sera vite implanté à peu près partout (sur les distribs linux en tout cas), comme ca ou pourra commencer à l'utiliser dans nos programmes, car la c'était tout à fait possible, mais il fallait passer par des générateurs de triggers, c'est un peu lourd quand on a une dixaine de tables ou plus ...le 17/10/2009 à 17:36 -
sidevMembre du Clubça va vraiment accélérer les choses je pense. Mais j'attend de tester voir ce que ça donne par rapport à mon bien aimé SqlServeurle 17/10/2009 à 17:48
-
Rapha222Membre habituéC'est pas du tout la même utilisation, sqlite étant une BDD embarquée (ou alors il faut utiliser SQL Server CE, mais je sais pas où ca en est niveau fonctionnalités).
SQLite est de plus en plus utilisée, beaucoup d'applis Linux l'utilisent, c'est la BDD intégrée à MacOS (et sa version mobile) et Android, ...
Personnelement je l'utilise en C#, ce qui me permet de faire fonctionner mes applis aussi bien sur Linux/OS X avec Mono que sur Windows avec .NET
Le fait qu'elle évolue bien devrait se ressentir sur les applications qui l'utilisent
Edit:
Il manque tout de même pour moi quelques petites choses à SQLite pour rendre son utilisation vraiment agréable:
* Pouvoir mettre des sous-requêtes dans les contraintes ;
* Les vues modifiables (on peut s'en passer avec des triggers INSTEAD OF) ;
* Plus de fonctions intégrées: il n'y a presque pas de fonctions mathématiques (SQRT, SIN, ...) par exemple;
* Un index FULLTEXT.
Mais comme dit plus haut, l'objectif de SQLite n'est pas de gérer des grosses tables (> 200 000 enregistrements). En théorie, une application qui utilise SQLite ne devrait jamais arriver à cette limite, si c'est le cas, il faut passer son chemin. Par exemple, Banshee utilise SQLite pour gérer sa bibliothèque multimedia, et c'est vraiment efficace et rapide, comparé à ses concurrents, ...le 17/10/2009 à 17:54 -
sidevMembre du ClubMême si SQL Server CE et Sqlite joue dans la même catégorie il faut signaler que
Sqlite est très simple (c'est ça qui fait sa force). SQL Server CE est plus complexe d'autant plus qu'il fournit des fonctionnalités bcp plus avancés.le 17/10/2009 à 18:36 -
Rapha222Membre habituéJe ne connais pas très bien SQL Server CE, car j'utilise principalement Mono.
Tu saurais rapidement donner ce qu'il y a en moins dans la CE par rapport à la version serveur ou/et ce que CE supporte par rapport à SQLite (par example, support-il les requêtes récursives, comme la version serveur ?).
Mercile 17/10/2009 à 18:40 -
sidevMembre du ClubLa récursivité non je pense pas. Mais il offre plus de fonctions math que Sqlite.
On peut même faire de la réplication de données avec SqlServer 2000 et ultérieurs, ceci fait partie de ces nouvelles fonctionnalités. le 17/10/2009 à 19:24 -
robert_trudelMembre éprouvéle 17/10/2009 à 22:24
-
Rapha222Membre habituéle 17/10/2009 à 22:30
-
Je suis en désaccord avec ça : un SGBD qui ne peut pas tenir la charge serait à éviter absolument (tous les projets grossissent). Ce n'est pas le cas d'sqLite :
Mon projet a commencé à 100 lignes, il approche aujourd'hui le million et j'espere bien qu'il ira jusq'à 50 M pourquoi n'irait-il pas ? contrairement à access il ne connait pas de chute brutale de perf mais je n'ai pas encore testé à pleine charge.le 18/10/2009 à 16:47