Website development
MySQL
December 2015 19

Сервис от компании Percona для создания оптимальной конфигурации MySQL серверов и анализа SQL-запросов

Предлагаю ознакомиться с сервисом от компании Percona, который позволяет правильно настроить конфигурацию MySQL сервера на основе конкретных условий использования и проанализировать используемые SQL-запросы на наличие ошибок и недочетов.



Анализ запросов в данном сервисе — не является заменой команде EXPLAIN, которая ориентирована на анализ производительности запроса, а является скорее дополнением, которое анализирует запрос с точки зрения его синтаксиса.



Информация о компании Percona
Percona is an open source software company specializing in MySQL Support, Consulting, Managed Services, and Training. The company was founded in 2006 by Peter Zaitsev and Vadim Tkachenko[1][2] and is headquartered in Durham, North Carolina. The company launched a MySQL Backup Service in June 2014 as part of its Managed Services.[3] The company contributes to the MySQL community through its blog site, the MySQL Performance blog.[4] The company also hosts annual MySQL user conferences[5] named «Percona Live» in Silicon Valley and London. The company's founders have also published the O'Reilly book «High Performance MySQL».[6]


После регистрации на сайте по адресу https://tools.percona.com, Вам становятся доступными два сервиса:
«Configuration wizard» и «Query adviser». Рассмотрим их подробнее

Configuration wizard — позволяет на основе пошагового опроса (всего 7 шагов) получить готовую конфигурацию my.cnf в которой учтены именно ваши условия работы.

Пример экрана с запросом:



Так выглядит экран с итоговой конфигурацией (на скриншоте часть my.cnf файла):



Query adviser — позволяет указав SQL запрос получить рекомендации по его оптимизации с точки зрения синтаксиса (еще раз подчеркну, что сервис не анализирует план выполнения запроса ввиду отсутствия данных о конфигурации сервера и наличия индексов).

Пример запроса:

SELECT 
   p.shopId, 
   p.typeId,  
   MIN(p.price) AS price
FROM 
  modelPrice p, 
  modelItem i 
WHERE 
  p.modelItemId = i.id AND 
  i.modelId = '5250' AND 
  p.price > 0
GROUP BY 
  p.shopId, 
  p.typeId


Рекомендации сервиса:



и более развернуто



Все конфигурации и анализы SQL-запросов сохраняются в dashboard для последующего анализа и использования.

В заключение хотелось бы отметить, что несмотря на наличие большого количества подробных руководств и статей по настройке MySQL, данные сервисы могут полезны как для начинающих, так и опытных разработчиков, поскольку систематизируют в компактной форме рекомендации данные в документации.
+12
13.9k 168
Support the author
Comments 8