КАК ОПТИМИЗИРОВАТЬ БД

БД SQLite

При работе программы «движок» БД SQLite может использовать дополнительное дисковое пространство для кэширования запросов – создания так называемых «файлов журналирования». В зависимости от сложности запросов их размеры могут быть соизмеримы с размерами основной базы данных (файл ua_main.db3).

Размер файла БД можно уменьшить, выполнив процедуру «Сжатия» :

Сервис->Настройка базы сообщений-> Сжать и обновить

Данная функция  оптимизирует структуру файла БД  и очищает неиспользуемые индексы, которые могут быть причиной замедления работы базы и увеличения числа сбоев.

Для предотвращение появления ошибок при работе с использованием БД SQLite необходимо регулярно выполнять эту процедуру и следить, чтобы свободное место на диске,  в котором находится файл ua_main.db3 и на  диске с временной папкой Windows были на порядок больше размера самого файла ua_main.db3.


Более эффективным является использование БД PostgreSQL.

Перейти на ее использование можно, выполнив соответствующие операции (см. меню  Сервис->Настройка базы сообщений).

Начиная с версии RexFly 2.0.90.2, алгоритм указанной процедуры «Сжатия» был существенно оптимизирован.
Данную процедуру для БД PostgreSQL нужно производить перед сжатием БД средствами pgAdmin, т.к.  это позволяет удалить большие бинарный объекты, не привязанные к сообщениям(большие бинарные объекты остаются в БД после удаления сообщений из корзины и занимают значительное место).




БД PostgreSQL:

Описанный ниже метод оптимизации БД подходит для сравнительно небольших по объему БД. Чем больше размер БД, тем менее эффективен метод с точки зрения времени и ресурсов на его выполнение. Для больших БД используйте метод, описанный здесь.

  1. Удалите неактуальные/неиспользуемые сообщения во всех используемых папках (например, Входящие, Отправленные и др.) или сбросить их в архив-дамп (с версии 2.0.90.3 появилась такая возможность)
  2. Очистите папку «удаленные» (удалите сообщения из «корзины»)
  3. Выполните процедуру <создания резервной копии> (на случай необходимости восстановления требуемой информации после оптимизации БД), для этого:
     а) выберите пункт Сервис->Работа с базой сообщений->Создать резервную копию
     б) В появившемся окне <Создание резервной копии БД (дампа)> задайте имя файла дампа и отметьте пункты:
       — дату, старше которой сообщения не сохраняются — выгружать
     — временной лимит операции  (если время на выполнение операции ограничено)  и размер дампа на диске (если имеются ограничения в объемах хранения)
     в) Нажмите кнопку <Начать процесс создания резервной копии>

  4. Выполните процедуру <сжатия и оптимизации>, для этого:
    а) выберите пункт Сервис->Работа с базой сообщений->Настройка базы
    б) В появившемся окне <Работа с базой данных (режим postgreSQL) задайте параметры подключения к БД и нажмите кнопку <Сжать и оптимизировать>
  5. Выполните процедуру Vacuum…  через pgAdmin