Ответы пользователя по тегу SQL
  • Еще раз о логировании изменений и версионировании данных в БД

    Если вы хотите хранить меняющийся справочник — так храните его! Примерно как по первой ссылке:

    Справочник (иерархично) -> Элементы справочника (уникальный код элемента, ссылка_на_справочник) -> Значения элементов во временном разрезе, т.е. версии по вашей терминологии (дата_начала, дата_окончания, реальное_значение, ссылка_на_элемент, + аудит по вкусу).

    Вот последнюю сущность, собственно значения, и меняйте как вам угодно, имхо. Хотите — только значение (т.е. иногда это будет изменение «задним числом»), а хотите — заводите новую запись с датами.
    В таком случае, запросом всегда можно получить реальное значение на любой момент времени.

    Если встраивать же такие условия во множество запросов будет не очень удобно, то можно подумать про денормализацию — т.е. хранение ссылок на нужное значение элемента в агрегации.

    Не совсем понятно, зачем вам текущие актуальные сведения — в чем профит? Ну т.е. если жесткий лоад — проще в памяти поднять, имхо, врядли там такая бесконечность справочников.
    Ответ написан
    1 комментарий
  • Посоветуйте книги по SQL, Python оптимизация под высокие нагрузки?

    Книжка: PostgreSQL 9.0 High Performance
    Очень толковая, стоит прочитать, даже если у вас не PostgreSQL, так как во-первых, там немало полезного про железную часть, а во-вторых, многие вещи имеют смысл и для других СУБД, с учётом их специфики, конечно.

    Сам по себе Python-код, кмк, имеет смысл оптимизировать после того, как правильно выбраны библиотеки для узких мест, то есть если большая сетевая нагрузка — то twisted/tornado, если много расчетов — numpy/scipy, и тд.
    И после того, как выбраны оптимальные алгоритмы обработки данных.
    Ответ написан
    Комментировать