Spec-Zone.ru › MySQL 5.7

8.2.6 Другие советы по оптимизации

В этом разделе перечислены различные советы по улучшению скорости обработки запросов:

  • Если ваше приложение выполняет несколько запросов к базе данных для выполнения связанных обновлений, объединение инструкций в хранимую процедуру может повысить производительность. Аналогично, если ваше приложение вычисляет единственный результат на основе нескольких значений столбцов или больших объемов данных, объединение вычислений в загружаемую функцию может повысить производительность. Результатом будут быстрые операции с базой данных, которые затем можно повторно использовать другими запросами, приложениями и даже кодом, написанным на разных языках программирования. Дополнительную информацию можно найти в разделе 23.2, «Использование хранимых процедур» и Добавление функций в MySQL.

  • Для решения проблем сжатия, возникающих с таблицами ARCHIVE, используйте OPTIMIZE TABLE. Дополнительную информацию можно найти в разделе 15.5, «Двигатель хранения ARCHIVE».

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

  • Если у вас есть данные, которые плохо подходят для табличной структуры «строки-столбцы», вы можете упаковать и сохранить данные в столбце BLOB. В этом случае необходимо предоставить код в вашем приложении для упаковки и распаковки информации, но это может сэкономить операции ввода-вывода для чтения и записи наборов связанных значений.

  • Для веб-серверов храните изображения и другие двоичные ресурсы как файлы, а путь к файлу храните в базе данных, а не сам файл. Большинство веб-серверов лучше кэшируют файлы, чем содержимое базы данных, поэтому использование файлов, как правило, быстрее. (Хотя в этом случае вы должны сами обрабатывать резервное копирование и проблемы хранения).

  • Если вам нужна очень высокая скорость, обратитесь к низкоуровневым интерфейсам MySQL. Например, напрямую обращаясь к хранилищу MySQL InnoDB или MyISAM, вы можете получить существенное увеличение скорости по сравнению с использованием SQL-интерфейса.

    Аналогично, для баз данных, использующих хранилище NDBCLUSTER, вы можете рассмотреть возможность использования API NDB (см. ).

  • Репликация может обеспечить преимущества производительности для некоторых операций. Вы можете распределить запросы клиентов среди реплик, чтобы разделить нагрузку. Чтобы избежать замедления исходного источника при создании резервных копий, вы можете создавать резервные копии, используя реплику. Дополнительную информацию можно найти в главе 16, «Репликация».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/miscellaneous-optimization-tips.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API