On Mon, 10 Jan 2005, Markus Oliver Junginger wrote:

>We are developing applications that also run on PocketPC devices; Sqlite
>2.8.x is used here as the database.
>
>For the next release of our software the question is if we should switch
>to SQLite 3. What's the experts'  recommendation? The main concern is
>probably memory consumption, which should be as low as possible.


<disclaimer>
I've not yet ported any stuff to SQLite 3, so I'm by no means an expert...
</disclaimer>

For non-text data, SQLite 3.x has more efficient storage, as binary data
is stored in binary format and not text format. I've heard figures such as
25% savings on disk space bandied about, but YMMV. The storage is not
binary compatible with SQLite 2.8.x files, and SQLite 3 cannot read 2.8.x
files.

SQLite also has better support for concurrent access. But as you're
embedded, that's probably of little concern.

The main difference is the new API, basically a functional superset of the
2.8.x API, but using a different prefix (sqlite3 versus sqlite) so there
will be some effort in porting to the new version.

SQLite 2.8.x is now essentially in maintenance mode only, new features
will only appear in the 3.x releases, so porting to 3.x will future proof
your code for longer.


So, to sum up, use 3.x if:
- You want smaller databases.
- Want better concurrent access.
- Want more future proof code.

Stay with 2.8.x if:
- You want to maintain binary compatibility with existing data.
- Don't have time to port to 3.x API.
- 2.8.x provides all you need, and is future proof enough. If it ain't
  broke...


>
>Thank you,
>Markus
>

Christian

-- 
    /"\
    \ /    ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
     X                           - AGAINST MS ATTACHMENTS
    / \

Reply via email to