За последние 2 года мы опробовали множество различных механизмов и стилей баз данных, чтобы решить конкретную проблему, которая требует как функций пакетов NoSQL, так и RDBMS. Мы остановились на RDBMS и Postgres.
Мы проверили производительность по множеству различных сценариев, и это показывает, что Postgres все время хорошо справляется со всем, но мы знаем, что моделирование не является производственным процессом, и другие люди имеют совершенно разный опыт работы с базами данных в масштабе.
One Giant против множества малых - это аргумент, который проторенный, но мой вопрос касается эффективности на скромном аппаратном обеспечении в масштабе (скромное аппаратное обеспечение, начинающееся на маленьком Linux-VPS, становится все больше и больше по мере роста спроса).
У нас есть одна таблица (5 столбцов, 2 индекса (1 трехсторонний индекс)), которая легко превысит 1 млрд строк. Если вместо этого мы скажем, что 10 (или даже 100 тыс.) Таблиц приведут к размыванию ресурсов сервера, то есть не все ли индексы будут в состоянии удерживаться в оперативной памяти из-за количества таблиц сдвига? Если данные разделены, то почти все 10k-таблицы будут считываться / записываться, поэтому конкретной активной таблицы как таковой нет.
И при обсуждении разбиения, потому что все разделы были бы горячими, я предполагаю, что это также принесло бы ограниченные преимущества, учитывая широкое распространение операций чтения / записи.
Итак, мой вопрос: «При ограниченных ресурсах Postgres становится неэффективным, когда данные разбиты на одну таблицу или разбиты на несколько таблиц. Есть ли эффективность, которую можно получить, имея только один индекс таблицы и почти все деятельность сосредоточена вокруг конца таблицы. "