Somewhere I can't find again.

There are several pages on how it all works:

 http://sqlite.org/faq.html#q7
 http://sqlite.org/lockingv3.html

"ALTER TABLE   To change a table you have to delete it (saving its
contents to a temporary table) and recreate it from scratch."

This isn't good is it?  I'm going to be indexing all files installed by
a package manager . . . I'll be altering large tables quite frequently.

Alter table is how you change which columns are preset in a table. It is not about changing the rows. The former is a relatively rare thing.

I would strongly recommend you read almost all of the documentation
on http://sqlite.org/docs.html such as

   http://sqlite.org/faq.html#q13

Am I trying to solve a problem that I shouldn't be solving with SQLite?

SQLite is in fact perfect for what you are trying to do as it doesn't require a functioning network nor does it have a compulsory layer of authentication and access control.

http://www.sqlite.org/cvstrac/wiki?p=WhenToUseSqlite

MySQL seems to take ~6M of memory to run

Your numbers are meaningless. The databases consist of an amount of code (there is quite a bit more in MySQL) and information they have loaded from the database. RAM is used as a cache/subset of the on disk file. There are various places you can tune the various products. Here is how you do it with SQLite (cache_size):

   http://sqlite.org/pragma.html#modify

itself.  I'd imagine running *SQL over network would be slow and highly
unstable if there was a disaster.

Section 6 at http://sqlite.org/lockingv3.html describes what the integrity
issues are with networked filesystems (ie if the OS doesn't do the
various system calls in the same way when going to a network filesystem).
Latency will also get you. See the last paragraph of


http://www.sqlite.org/cvstrac/wiki?p=WhenToUseSqlite

Roger

Reply via email to