Разумеется один сервер держит несколько тысяч пользователей, но это результат кеширования.
Данные в системе постоянно меняются, то, что возможно - уже закешировано. Остальное требует максимально возможной актуальности данных.
Эта система кроме того, ведёт складской учёт, продажи, закупки, подсчёт статистики и генерация отчётности (временами довольно замысловатой). В работе используется почти всё, что есть в базе. (средней размер базы данных 75gb). Запихивать всё это в память - нереально.
Что значит "вы отдаете клиенту данные из большого каталога непосредственно из CRM" - В CRM работают сотрудники, клиенты не имеют доступа ни к каталогу, ни к системе. Данные поставщиков и магазинов приходят чере REST интерфейсы. Связь с внешними системами тоже через API.
В любом случае при постраении графа из реляционной базы данных требуется ЛИБО извлекать сразу большое количество данных и их обрабатывать ЛИБО делать большое количество запросов. Первый вариант - быстрый но затратный по ресурсам, второй - наоборот.
Эта система кроме того, ведёт складской учёт, продажи, закупки, подсчёт статистики и генерация отчётности (временами довольно замысловатой). В работе используется почти всё, что есть в базе. (средней размер базы данных 75gb). Запихивать всё это в память - нереально.
Для решения подобной задачи, нужно много времени, но не очень много ресурсов.