SQLMon для Code Igniter

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

Этот минимум в достигается очень просто: вызовом

[-]
View Code PHP
$this->output->enable_profiler(TRUE);

в контроллере. Но когда запросов на странице очень много, хотелось бы избавиться от рутинного выполнения EXPLAIN для каждого подозрительного запроса. Что, собственно, и делает . Возникает логичное желание интегрировать его в . Далее »

Автор: Vladimir, опубликовано в: PHP, комментариев: 3
13
Фев
2010

SQLMon для Kohana 3

Продолжая славную традицию реализации под различные CMS/фреймворки, написал одному заказчику модуль для .

для интегрируется в иерархию классов Database (встраивается между классами Database_MySQL и Kohana_Database_MySQL) и реализует обёртку над методом Kohana_Database_MySQL::query(), измеряя время выполнения запроса, объём потребляемой памяти, записывая код ошибки запроса, трассу вызовов и EXPLAIN запроса (причём не только для SELECT, но и UPDATE/DELETE и INSERT/REPLACE INTOAS или CREATE  TABLEAS) — всё то же самое, что и SQLMon для WordPress. Далее »

Автор: Vladimir, опубликовано в: Kohana, комментариев: 2
9
Фев
2010

SQLMon: мониторинг запросов MySQL

Наверное, каждый разработчик знает, что во многих случаях плохая производительность связана с ошибками при проектировании базы данных либо неоптимальными запросами к (например, в таблице нет индекса, который мог бы использоваться для выполнения запроса, либо запрос использует ORDER BY/GROUP BY, без которых можно обойтись).

может вывести только список всех выполненных запросов — разработчику придётся запускать каждый подозрительный запрос вручную и анализировать результат. Это очень муторно и непродуктивно. пытается помочь разработчикам, анализируя все запросы перед их выполнением, сообщая обо всём, что требует внимания.

Каждый запрос, который передаётся , анализируется (используя EXPLAIN); результаты показываются в подвале темы или панели администрирования. Лог запросов виден только администраторам, что позволяет использовать плагин даже на живых сайтах.

Одна из особенностей  — возможность выполнения EXPLAIN не только на запросах SELECT, но и UPDATE/DELETE и INSERT/REPLACE INTOAS или CREATE TABLEAS.

Перед использованием плагина рекомендую к прочтению статью Optimizing Queries with EXPLAIN.

Активация плагина: для успешной активации каталог wp-content должен быть доступен на запись — в него помещается файл db., который занимается отловом и анализом запросов.

Деактивация/удаление: аналогично, чтобы плагин смог удалить файл db., каталог wp-content должен быть доступен на запись. Тем не менее, в плагин добавлены средства контроля, позволяющие сохранить работоспособность блога, если плагин был удалён, а wp-content/db. — нет.

Внимание:

  • плагин не будет работать с  4;
  • плагин конфликтует со всеми плагинами, устанавливающими свой собственный db. (W3 Total Cache, DB Cache, DB Cache Reloaded).

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

Домашняя страница SQLMon на wordpress.org.

Автор: Vladimir, опубликовано в: , комментариев: 6
23
Ноя
2009

SQLMon: плагин для анализа SQL-запросов

Меня всегда интересовало, насколько эффективно работает с базой данных, и насколько хорошо спроектирована база данных.

Практически в каждом проекте, над которым я работаю, я использую те или иные средства для анализа производительности скрипта и поиска его слабых мест. Для разработчиков не является секретом, что во многих случаях плохая производительность работы скрипта обусловлена низкой производительностью SQL-запросов. И, как правило, низкое быстродействие запросов связано с их неоптимальностью (что включает в себя отсутствие необходимых индексов в базе данных).

Однажды столкнувшись с ужасной производительностью и не имея возможности анализировать код десятка поставленных плагинов, я стал решать задачу иначе, в результате чего родился плагин для анализа SQL-запросов. Далее »

Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 6
13
Июнь
2008