SQLMon для Code Igniter
На днях мне довелось заняться оптимизацией одного проекта, написанного с использованием фреймворка Code Igniter. Важной частью процесса являлась оптимизация запросов к базе данных, а для этого как минимум нужно видеть эти запросы перед глазами.
Этот минимум в Code Igniter достигается очень просто: вызовом
в контроллере. Но когда запросов на странице очень много, хотелось бы избавиться от рутинного выполнения EXPLAIN для каждого подозрительного запроса. Что, собственно, и делает SQLMon. Возникает логичное желание интегрировать его в Code Igniter. Далее »
Фев
2010
SQLMon для Kohana 3
Продолжая славную традицию реализации SQLMon под различные CMS/фреймворки, написал одному заказчику модуль для Kohana 3.
SQLMon для Kohana 3 интегрируется в иерархию классов Database (встраивается между классами Database_MySQL и Kohana_Database_MySQL) и реализует обёртку над методом Kohana_Database_MySQL::query(), измеряя время выполнения запроса, объём потребляемой памяти, записывая код ошибки запроса, трассу вызовов и EXPLAIN запроса (причём не только для SELECT, но и UPDATE/DELETE и INSERT/REPLACE INTO … AS или CREATE TABLE … AS) — всё то же самое, что и SQLMon для WordPress. Далее »
Фев
2010
SQLMon: мониторинг запросов MySQL
Наверное, каждый разработчик знает, что во многих случаях плохая производительность связана с ошибками при проектировании базы данных либо неоптимальными запросами к MySQL (например, в таблице нет индекса, который мог бы использоваться для выполнения запроса, либо запрос использует ORDER BY/GROUP BY, без которых можно обойтись).
WordPress может вывести только список всех выполненных запросов — разработчику придётся запускать каждый подозрительный запрос вручную и анализировать результат. Это очень муторно и непродуктивно. SQLMon пытается помочь разработчикам, анализируя все запросы перед их выполнением, сообщая обо всём, что требует внимания.
Каждый запрос, который передаётся WordPress, анализируется (используя EXPLAIN); результаты показываются в подвале темы или панели администрирования. Лог запросов виден только администраторам, что позволяет использовать плагин даже на живых сайтах.
Одна из особенностей SQLMon — возможность выполнения EXPLAIN не только на запросах SELECT, но и UPDATE/DELETE и INSERT/REPLACE INTO … AS или CREATE TABLE … AS.
Перед использованием плагина рекомендую к прочтению статью Optimizing Queries with EXPLAIN.
Активация плагина: для успешной активации каталог wp-content должен быть доступен на запись — в него помещается файл db.php, который занимается отловом и анализом запросов.
Деактивация/удаление: аналогично, чтобы плагин смог удалить файл db.php, каталог wp-content должен быть доступен на запись. Тем не менее, в плагин добавлены средства контроля, позволяющие сохранить работоспособность блога, если плагин был удалён, а wp-content/db.php — нет.
Внимание:
- плагин не будет работать с PHP 4;
- плагин конфликтует со всеми плагинами, устанавливающими свой собственный
db.php(W3 Total Cache, DB Cache, DB Cache Reloaded).
Плагин пригодится разработчикам WordPress, разработчикам плагинов и тем, а также администраторам, знающим MySQL, пытающимся понять, почему блог так медленно работает.
Домашняя страница SQLMon на wordpress.org.
Автор: Vladimir, опубликовано в: Всё подряд, комментариев: 6Ноя
2009
SQLMon: плагин для анализа SQL-запросов
Меня всегда интересовало, насколько эффективно WordPress работает с базой данных, и насколько хорошо спроектирована база данных.
Практически в каждом проекте, над которым я работаю, я использую те или иные средства для анализа производительности скрипта и поиска его слабых мест. Для разработчиков не является секретом, что во многих случаях плохая производительность работы скрипта обусловлена низкой производительностью SQL-запросов. И, как правило, низкое быстродействие запросов связано с их неоптимальностью (что включает в себя отсутствие необходимых индексов в базе данных).
Однажды столкнувшись с ужасной производительностью WordPress и не имея возможности анализировать код десятка поставленных плагинов, я стал решать задачу иначе, в результате чего родился плагин для анализа SQL-запросов. Далее »
Автор: Vladimir, опубликовано в: Плагины WordPress, комментариев: 6Июнь
2008

Меня зовут Владимир, я программист-фрилансер, специализирующийся на Web-программировании и програмировании под Linux.
По совместительству занимаюсь администрированием LAMP/LNMP-серверов и техническим переводом.





