Открыть сервис

Percona Server

Percona Server — это форк (ответвление) реляционной системы управления базами данных (СУБД) MySQL, разрабатываемый и поддерживаемый компанией Percona. Основное отличие Percona Server от оригинального MySQL заключается в оптимизации производительности, улучшенной масштабируемости, расширенной диагностике и дополнительных инструментах для администрирования, при сохранении полной совместимости с синтаксисом и протоколами MySQL. Percona Server распространяется бесплатно под лицензией GNU General Public License (GPL) версии 2.

История

Проект Percona Server был основан в 2008 году компанией Percona, основанной Питером Зайцевым и Вадимом Ткаченко. Компания изначально специализировалась на консалтинге и оптимизации производительности баз данных MySQL. Разработка собственного форка была обусловлена необходимостью внедрения улучшений, которые не были приняты в основную ветку MySQL компанией Sun Microsystems (а затем Oracle Corporation) или внедрялись слишком медленно.

Первая стабильная версия Percona Server 5.0 была выпущена в 2008 году. В 2010 году, после приобретения Sun Microsystems компанией Oracle, сообщество MySQL раскололось: часть разработчиков и пользователей опасалась, что Oracle будет уделять меньше внимания открытой версии MySQL, сосредоточившись на коммерческой редакции. Это привело к росту популярности форков, включая Percona Server и MariaDB. Percona Server продолжил развиваться параллельно с MySQL, выпуская версии, соответствующие основным релизам MySQL (5.1, 5.5, 5.6, 5.7, 8.0).

Ключевые особенности и отличия от MySQL

Percona Server не является полностью самостоятельной СУБД, а представляет собой модифицированную версию MySQL. Основные отличия направлены на повышение производительности, надежности и удобства эксплуатации.

Движок XtraDB

В версиях до 8.0 основным движком хранения в Percona Server был XtraDB — форк движка InnoDB, разработанный компанией Percona. XtraDB включал ряд оптимизаций, не вошедших в оригинальный InnoDB:

  • Улучшенная работа с памятью: более эффективное управление буферным пулом, адаптивный хэш-индекс.
  • Оптимизация ввода-вывода: поддержка асинхронного ввода-вывода, улучшенная работа с подкачкой страниц.
  • Расширенная статистика: более детальная информация о состоянии индексов и таблиц для оптимизатора запросов.
  • Улучшенная производительность на многоядерных процессорах: снижение конкуренции за блокировки.

Начиная с версии 8.0, Percona Server отказался от XtraDB в пользу стандартного InnoDB, так как оригинальный движок от Oracle к тому времени догнал и превзошел XtraDB по большинству характеристик. Однако часть наработок XtraDB была перенесена в код InnoDB.

Расширенная диагностика и мониторинг

Percona Server предоставляет значительно больше информации о внутреннем состоянии сервера, чем стандартный MySQL:

  • Percona Server для MySQL (PSM): набор хранимых процедур и функций для сбора статистики и управления сервером.
  • Расширенный журнал медленных запросов: позволяет логировать не только запросы, превышающие порог времени, но и запросы, использующие временные таблицы, файловую сортировку, блокировки строк и т.д.
  • Статистика по индексам и таблицам: детальная информация об использовании индексов, конфликтах блокировок, размерах таблиц.
  • Инструменты для профилирования: встроенный профилировщик запросов, позволяющий анализировать план выполнения и время на каждом этапе.

Улучшенная производительность

  • Буферизация и кэширование: улучшенное управление буферным пулом InnoDB, поддержка нескольких буферных пулов для снижения конкуренции.
  • Оптимизация блокировок: уменьшение времени удержания блокировок, поддержка более гранулярных блокировок.
  • Параллельное выполнение: улучшенная поддержка параллельного выполнения запросов и операций с данными.
  • Оптимизация для SSD: настройки, учитывающие особенности твердотельных накопителей (например, отключение некоторых операций, неэффективных на SSD).

Дополнительные инструменты

В состав Percona Server входят или поставляются вместе с ним несколько утилит, не входящих в стандартную поставку MySQL:

  • Percona Toolkit: набор командных утилит для администрирования, резервного копирования, миграции и анализа производительности (например, pt-query-digest, pt-online-schema-change, pt-table-checksum).
  • Percona XtraBackup: утилита для горячего резервного копирования баз данных InnoDB без остановки сервера. XtraBackup стал стандартом де-факто для резервного копирования MySQL и его форков.
  • Percona Monitoring and Management (PMM): платформа для мониторинга и управления базами данных MySQL, MariaDB и Percona Server. Включает графический интерфейс, сбор метрик, оповещения и анализ производительности.

Применение

Percona Server используется в качестве замены MySQL в тех случаях, когда требуется повышенная производительность, надежность и возможности мониторинга. Он популярен в следующих сценариях:

  • Высоконагруженные веб-приложения: интернет-магазины, социальные сети, системы управления контентом (CMS), где важна скорость обработки большого количества запросов.
  • Системы с интенсивной записью: логирование, аналитика, системы обработки транзакций (OLTP).
  • Системы, требующие высокой доступности: используется в сочетании с инструментами репликации и кластеризации (например, Percona XtraDB Cluster).
  • Миграция с MySQL: Percona Server является прямой заменой MySQL без изменения кода приложений, что упрощает переход.

Критика

Основные критические замечания в адрес Percona Server связаны с:

  • Зависимостью от кода Oracle: Percona Server является форком MySQL, поэтому его развитие напрямую зависит от изменений в оригинальном коде. Компания Percona вынуждена постоянно синхронизировать свой код с кодом Oracle, что может приводить к задержкам в выпуске новых версий.
  • Сложностью обновления: при переходе с одной мажорной версии на другую (например, с 5.7 на 8.0) могут возникать те же проблемы, что и при обновлении стандартного MySQL.
  • Отсутствием некоторых функций: в некоторых версиях Percona Server могут отсутствовать функции, которые есть в коммерческой версии MySQL Enterprise (например, некоторые инструменты мониторинга и безопасности). Однако Percona Server предоставляет собственные альтернативы.

Интересные факты

  • Percona Server является одним из трёх основных форков MySQL (наряду с MariaDB и оригинальным MySQL от Oracle).
  • Компания Percona также разрабатывает Percona XtraDB Cluster — решение для кластеризации баз данных на основе технологии Galera.
  • Percona Server используется в некоторых крупных проектах, включая некоторые сервисы Google, Facebook (продукт Meta, признанной экстремистской и запрещённой в РФ) и Wikipedia (в прошлом или в отдельных компонентах).

См. также

  • MySQL
  • MariaDB
  • Percona XtraBackup
  • Percona Monitoring and Management (PMM)

Источники

  • Официальная документация Percona Server
  • Сайт компании Percona
  • Материалы конференций и докладов по базам данных (Percona Live, HighLoad++)
  • Статьи и обзоры на ресурсах Habr, OpenNet, ServerWatch

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →