Be Cautious About MySQL Licensing (was Re: Database suggestions?)

Ruslan Zasukhin sunshine at public.kherson.ua
Sun May 15 18:36:33 EDT 2005


On 5/16/05 12:27 AM, "Dan Shafer" <revdan at danshafer.com> wrote:

Hi Dan,

> Not really, Ruslan. If I have an app that I'm distributing on CD/DVD
> or downloading but which is intended for single-user deployment, I
> would use altSQLite because it's fast, free, and (thanks to Altuit)
> trivial to incorporate into my Rev apps.

:-) I think this is little a myth that SQL Lite is fast.

Week ago, I have made simple bench
    single table, 10 fields of all simple types.
    add million of records.
 
Db size was about 200+ MB without indexes.
With 2 indexed was added 200+ MB more.

Size of similar Valentina db was about 20-30% less, although it keep strings
now in UTF16. This sounds as clear fact that SQL Lite use much more disk
space. This is not effective and for RAM usage.

So simple fact:
    * SELECT DISTINCT * from T
    have work on my DUAL G5/2.0 7 minutes AND it have not finish!
    I just force quite SQL Lite,.

Other simple searches: as search on one or few INDEXED fields really
__looks__ fast. But if you look deeply, it is easy to see that SQL Lite do
not honest work. It finds only first record that satisfy your search.

Confirmation of this is that you do not know e.g. HOW MANY records search
finds. If you need this number, you can do

    SELECT COUNT(*) FROM T WHERE your search

And it takes about minute to count. And THIS IS real time of search of
selection. Valentina do such search in fraction of second and return you
number of found records and set of founds records.

Is it important to know number of records? IMHO yes, because this allow you
correctly set up e.g. Scroll bars in browser of records. This is not
important of you show only one record at once.

I can for example also point, that such technical trick of SQL Lite will not
allow it to have effective record locks. Because you MUST lock all found
records. Is this important? Well, without record locks you can forget about
mutli-thread application. IF somebody will say I can do this will SQL Lite,
then I will send him to SQL books to read about classic descriptions of
isolation levels and possible phenomens

And I have not start spend time yet to prove that SQL Lite will slooow on
big dbs as above for joins, DISTINCT, GROUP BY, ORDER BY... Just I am sure
this is a fact, because I see how SQL Lite is designed and this cannot work
fast. 

And is a database in million records and 200-400MB big?
IMHO this is NOT big.

a) We have Valentina developers that use e.g. 30 millions records in table,
And have db 20 GB.

B) size of DVD is 4.7 GB, so I want to see how cool SQL Lite will be on db
of such size :-))

-- 
Best regards,

Ruslan Zasukhin
VP Engineering and New Technology
Paradigma Software, Inc

Valentina - Joining Worlds of Information
http://www.paradigmasoft.com

[I feel the need: the need for speed]




More information about the use-livecode mailing list