Производительность базы данных

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

При проектировании и реализации базы данных следует выделить большие таблицы и наиболее сложные процессы. При их разработке необходимо уделить особое внимание производительности. Кроме того, следует определить, какое влияние на производительность будет оказывать увеличивающееся количество пользователей, обращающихся к таблицам.

Ниже продемонстрировано несколько примеров изменения структуры базы данных для улучшения производительности.

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

  • Базы данных могут быть излишне нормализированы. Это означает, что база данных содержит несколько небольших взаимосвязанных таблиц. При обработке данных в этих таблицах требуются дополнительные действия по объединению взаимосвязанных данных. Дополнительная обработка уменьшает производительность базы данных. В этом случае за счет денормализации базы данных можно упростить обработку и слегка увеличить производительность.

Замечания по выбору оборудования

Как правило, чем больше база данных, тем выше требования к оборудованию. Однако другие определяющие факторы включают в себя количество одновременных пользователей и сеансов, пропускную способность транзакций и типы операций, которые выполняются внутри базы данных. Например, требования к базе данных, содержащей редко обновляемые данные школьной библиотеки, будут обычно более скромными, чем к хранилищу данных объемом 1 терабайт, содержащему часто анализируемые сведения о продажах, товарах и клиентах большой корпорации. Кроме пространства на диске, хранилищу данных требуется больше памяти и более быстрые процессоры, чтобы кэшировать в памяти больше данных и быстрее обрабатывать запросы.

Подсистема ввода-вывода или подсистема хранилища является ключевым компонентом любой реляционной базы данных и требует тщательного планирования. Для успешной реализации базы данных требуется тщательное планирование на начальных этапах проектирования. Планирование должно включать рассмотрение следующих вопросов.