On Tue, 12 Sep 2006, Eduardo wrote:
At 09:14 11/09/2006, you wrote:
On Fri, 8 Sep 2006, Micha Nelissen wrote:
Eduardo wrote:
Here you have some benchmarks (posted in sqlite mail list, so "perhaps"
are biased)
http://sqlite.phxsoftware.com/forums/thread/622.aspx
How 'real-world' is importing 300 thousand records ? Aren't complex
select queries *much* more important ?
Yes, they are. And there sqlite fails miserably. I wrote a series of
articles, comparing several embeddable databases:
sqlite
mysql
firebird
advantage
nexusdb
And while sqlite had very good insert and simple select speeds, the speed
of complex queries (joining 2 tables) was a total disaster.
Well, SQLite has a little optimizer. You must optimize your SQL commands "by
hand" thinking in the way SQLite works, there are lot of tricks for speed up
SQL queries.
I'm sure there are, and I probably could have even bigger speed if I used ISAM
tables.
The task of an SQL engine is to relieve the programmer of such issues, no
matter what the query.
Plus, and this is really what killed it for me: it does no type checking.
You can perfectly store a string in an integer field in sqlite; making it
impossible to use properly with TDataset.
It can be done, but you can get weird errors because MyIntField.AsInteger
will
raise an exception of some other app stored a string in the integer.
SQLite is typeless, as tcl (the author of sqlite is one of tcl developers).
If you are reading a value from a table i suppouse you already know what is
the table schema, and what datatype is on every column.
You don't, since SQLite doesn't enforce it.
That means you must add extra error checking, etc...
An SQL engine should enforce type. As a pascal programmer, you rely on this.
Maybe not in VB or Tcl, but at least pascal is strongly typed.
I never understood what the big fuss is with sqlite. It's easy, yes, but
not fit for enterprise use.
Other example, you have a tiny http server (or gopher, or whatever) in 200KB,
and want integrate a database, you can use mysql, but mysql only is bigger
(5-6MB? more?) than the rest of your app, so, do you really need mysql
features? Pollute even more the .dll/.so hell? Surely not, just add SQLite
and compile statically, you'll get a 400-500KB app (one file) and only a
database file.
That sounds to me like wanting a rolls-royce engine in a Smart chassis :)
Michael.
_________________________________________________________________
To unsubscribe: mail [EMAIL PROTECTED] with
"unsubscribe" as the Subject
archives at http://www.lazarus.freepascal.org/mailarchives