Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (1)

Наибольший вклад в теги

Все теги (3)

Лучшие ответы пользователя

Все ответы (3)
  • Django и таблицы с очень большим количеством данных?

    baldr
    @baldr
    Создать много небольших одинаковых таблиц для вставки (например для каждого часа). В этих таблицах убрать все constraints (foreign key, indexes, ...), в них импортировать csv файлы напрямую средствами базы (load from если база умеет).
    На момент вставки - понизить уровень изоляции транзакций до минимума (MyISAM раньше идеальна была для таких вставок именно из-за отсутствия транзакций).
    Эти таблицы можно уже потом для выборки либо связать через view, либо через более сложные процедуры партиционирования.
    Если в течение дня (ночи?) есть какие-то промежутки времени когда база используется мало - можно запустить тяжелый скрипт, который переложит данные из этих таблиц в одну большую и добавит индексы и ключи.
    Вставку данных желательно делать в одной транзакции. Если через ORM - то bulk_insert.
    Если все это не помогает или не нравится - то улучшайте железо (как можно больше памяти) и настройки базы тяните, но это уже от безысходности.
    Учтите, что лучше писать в базу с 3 коннектов, но большими порциями, чем с 30 коннектов но маленькими. Каждый коннект - отдельная транзакция и при закрытии транзакций базе приходится ее согласовывать с остальными текущими.
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (3)