Чтобы значительно улучшить производительность хорошо спроектированной системы, все, что вы можете сделать, это увеличить ресурсы.Как правило, в наши дни самый дешевый способ сделать это - распределить задачу.
Например, медленная вещь в системе RDBM - чтение и запись в хранилище (обычно системы RDBM запускаются как привязанные к вводу / выводу).то есть они в основном ждут, когда данные будут прочитаны или записаны в хранилище.)
Таким образом, для смещения очень часто СУБД позволяет разделить таблицу на несколько жестких дисков, эффективно увеличивая количество операций ввода-вывода.производительность (подход, аналогичный RAID0).
Добавление большего количества жестких дисков повышает производительность.Это продолжается до максимального ввода / вывода, который может поддерживать ваша система (либо просто потому, что система не может протолкнуть больше данных по каналам, либо потому, что ей нужно немного обрезать числа при их выборке, чтобы получить привязку к процессору; оптимально выбудет использовать оба)
После этого вы должны начать умножать системы, распределяющие данные по узлам базы данных.Чтобы это работало, либо СУБД должна поддерживать его, либо должен существовать прикладной уровень, который будет координировать распределение задач и объединение результатов, но обычно все равно будет масштабироваться.
Я бы сказал, что с 512 системами вы можете иметь всетриллион записей эффективно кэшируется (10 ^ 12) и достигает относительно хорошей производительности.Но на самом деле вы должны указать, какую производительность вы ищете - есть разница между полнотекстовым поиском на терра-записях и выполнением в основном простых выборок и обновлений.Кроме того, для определенной работы 500 мс (или даже больше) считается хорошей производительностью, а для другой работы это будет ужасно.