The Apple Geek

Чему ты научился сегодня?

Ускорение работы Mail.app и пара приёмов работы с SQLite

Если Mail.app у вас стал гораздо медленнее работать, то стоит сделать Vacuum на базу данных SQLite. Предварительно нужно выйти из Mail.app. Для наглядности можно вывести размер базы до операции и после (к сожалению, я этого не сделал).

$ ls -alh ~/Library/Mail/Envelope\ Index$ sqlite3 ~/Library/Mail/Envelope\ Index vacuum;$ sqlite3 ~/Library/Mail/Envelope\ Index vacuum index;$ sqlite3 ~/Library/Mail/Envelope\ Index vacuum subjects;$ sqlite3 ~/Library/Mail/Envelope\ Index vacuum recipients;$ sqlite3 ~/Library/Mail/Envelope\ Index vacuum messages;$ sqlite3 ~/Library/Mail/Envelope\ Index vacuum threads;$ ls -alh ~/Library/Mail/Envelope\ Index

Скорее всего достаточно просто команды “vacuum”, но я дополнительно прошёлся по всем таблицам с большим количеством записей и прихватил индексы.

Если интересно, то посмотреть схему базы данных можно командой:

$ sqlite3 ~/Library/Mail/Envelope\ Indexsqlite> .schemaCREATE TABLE addresses (ROWID INTEGER PRIMARY KEY, address COLLATE NOCASE, comment, UNIQUE(address, comment));...

Перечень таблиц:

sqlite> .tablesaddresses              ews_folders            subjects             alarms                 feeds                  threads              associations           mailboxes              todo_notes           attachments            messages               todos                calendars              properties             todos_deleted_log    events                 recipients             todos_server_snapshot

Количество записей в таблицах:

sqlite> select count(*) from messages;sqlite> select count(*) from subjects;...

Помощь:

sqlite> .help

Описание работы с SQLite можно посмотреть в статьях ”Command Line Shell For SQLite” и ”SQLite Tutorial”.

Comments