2013-07-10 2 views
0

У меня есть более миллиона продуктов в дБ. Цена каждого продукта часто колеблется. Я планирую хранить эти колебания цен в таблице «История цен» (product_id, price, validity_start_date, validity_end_date).Будет ли таблица истории цен на продукт сильно влиять на производительность db?

Когда продукт просматривается, пользователь увидит, что его цена перестроена через js-сгенерированную диаграмму из json, выведенной из db.

Я собираюсь сделать это правильно?

(Использование рельсов и postgresql).

+0

Сложно сказать, не указывая нам никакого кода. То, что вы дали, - это спецификация, а не реализация. Спецификации не могут быть ошибочными, только реализациями - хотя и дано, некоторые проблемы трудно решить. – varatis

+0

лучший способ справиться с этим - «получить представление о данных»; особенно если у вас 1 миллион записей; реализовать с 1000 мер, 100 000 мер, а затем миллион. – timpone

ответ

0

Это действительно зависит. Теоретически вам не нужно иметь большую проблему с производительностью, если вы установите вещи с частичными уникальными индексами для самых последних частей (есть конкретные способы сделать это, выходящие за рамки этого ответа).

Это становится действительно грязным, хотя при использовании ORM и тому подобное. В общем, если вы собираетесь хранить этот вид данных я настоятельно рекомендовал бы быть готов сделать один из двух вещей:

  1. Вы можете абстрактный ваше хранилище за обновляемые представления (вы должны быть готовы писать и поддерживать логику обновления для просмотров).

  2. Возможно, вы захотите перейти на SQL.

Миллионы запчастей раз тысячи исторических цен, хотя (со временем) собирается быть очень раздражает на ОРМ, не имеющих доступа к вещам, как частичные индексы и тому подобное.