Rajan, Vivek K wrote:
> I have few questions regarding usage-model of multiple databases with
> SQLite. I understand SQLite allows for attaching multiple databases
> in a single session. My questions are:
> * Do the schema for multiple databases need to be same for
> attaching with SQLite in single session?
> * Is there any performance penalty for multiple databases,
> especially with different schemas?
Different schemas are a red herring. There is no gain nor loss in
attaching a database with the same schema, as opposed to different
There is of course some overhead when working with multiple databases.
For example, whenever a modifying transaction starts (or rather, when it
has to actually write data to disk for the first time), SQLite has to
create a journal file for each DB involved as well as a master journal
> * Are there any BKM's for how to use multiple databases with
> SQLite with different schemas, especially with query/select/join
It's not different from using a single database, again regardless of
whether the two databases have the same or different schemas. As far as
SQL syntax is concerned, you basically have a single database containing
all the tables from all the attached sources. If two tables from two
different databases happen to have the same name, you disambiguate them
using dbname.tablename syntax wherever table name is needed. Here dbname
is "main" (without quotes) for the main database (the one you originally
opened and to which all the others are attached), and for the other
databases you assign an arbitrary name in ATTACH statement.