Yes, I've titled this as Vienna 2.4. While I recognize that this release is a ways out there, I do not suggest immediate implementation of this database alteration, due to the time it may take to process.
Currently, the message body is stored alongside the basic information of the message, in the Messages table. This design can cause severe delays and excessive memory usage when loading messages from a large table. The proposed change is to create a new table with two columns (message_id, text) and move all text values into that new table, with their coresponding message_id, of course.
I also suggest a revert on the database schema, of sorts, to move enclosure information into it's own table, for the same reason as the message text change, as well as to support futher enhancements in the way of enclosures in the future builds.
The suggested SQL for these text change is as follows:
CREATE TABLE Messages_bodies AS SELECT message_id, text FROM Messages;
CREATE TABLE Messages_new AS SELECT [[comma-seperated list of all columns except the removed columns]] FROM Messages;
[[Optionally, make a verification procedure here, to ensure that all data transferred correctly.]]
DROP TABLE Messages;
ALTER TABLE Messages_new RENAME TO Messages;
I'm still working on trying to redesign enclosure support, as well as learning Objective-C to program in support for it.