Обычный прием, если это возможно в отношении схемы и семантики приложения, состоит в том, чтобы иметь несколько файлов MDB со связанными таблицами .
Кроме того, порядок выполнения вставок имеет значение в отношении способа увеличения размера файла ... Например: пакетные, по сравнению с одной / несколькими записями за один раз, отсортированные (относительно конкретного index (es)), количество индексов (как вы уже упоминали, некоторые из них легко удаляются на этапе вставки) ...
Ориентировочно предварительная обработка с сохранением, скажем, новых строк в отдельной связанной таблице, модой кучи (без индексов), затем сортировка / индексация этих данных является минимальной модой и "массовой загрузкой" это к своему реальному месту назначения. Подобная предварительная обработка в SQLite (намекала на вопрос) будет служить цели. Сохранить его "ВСЕ MDB", возможно, проще (меньше языков / процессов для изучения, меньше проблем взаимодействия [надеюсь, -)] ...)
РЕДАКТИРОВАТЬ : почему вставка записей в отсортированном / массовом режиме может замедлить рост файла MDB (вопрос от Tony Toews)
Одна из причин склонности файлов MDB к росту быстрее, чем скорость, с которой текст / данные добавляются к ним (и их аналогичная способность легко сжиматься), заключается в том, что при добавлении информации некоторые из узлов, составляющих индексы должны быть переупорядочены (для переполнения / перебалансировки и т. д.). Такое управление узлами, по-видимому, реализовано таким образом, который способствует скорости по сравнению с дисковым пространством и гармонией, и этот подход обычно довольно хорошо обслуживает простые приложения / небольшие данные. Я не знаю конкретной логики, используемой для такого управления, но я подозреваю, что в некоторых случаях операции узла приводят к тому, что определенный узел (или большая его часть) копируется заново, а старое местоположение просто помечается как свободное / неиспользуемое, но не удален / уплотненный / повторно. У меня есть «клинические» (хотя и немного устаревшие) доказательства того, что, выполняя массовые вставки, мы существенно ограничиваем количество возможностей для такого дублирования и, следовательно, замедляем рост.
Снова отредактируйте : После прочтения и обсуждения вещей от Тони Тоуэса и Альберта Каллала выясняется, что, возможно, более значительным источником вздутия , в частности в Jet Engine 4.0, является способ реализации блокировки . Поэтому важно установить базу данных в однопользовательском режиме, чтобы избежать этого. (Подробнее читайте в ответе Тони и Альберта.