SQLMon для Kohana 3
Мониторинг SQL-запросов в 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.
Данный модуль будет полезен разработчикам для анализа производительности запросов MySQL и поиска решений для их оптимизации. Перед использованием модуля рекомендуется прочитать статью «Optimizing Queries with EXPLAIN».
Использование модуля. Модуль должен быть распакован в каталог modules проекта (после распаковки появится каталог sqlmon). Затем модуль должен быть активирован в файле application/bootstrap.php. Очень важно, чтобы модуль подключался перед модулем database — это связано с особенностями поиска классов в Kohana 3.
Например:
'sqlmon' => MODPATH.'sqlmon', // SQL Monitor — обязательно перед Database
'database' => MODPATH.'database', // Database access
'orm' => MODPATH.'orm', // Object Relationship Mapping
'pagination' => MODPATH.'pagination', // Paging of results
));
Для отображения статистики нужно выполнить
Результатом будет нечто вида (скриншот можно кликнуть):
Настройка. SQLMon использует файлы конфигурации модуля Database — config/database.php. Для контроля поведения SQLMon нужно использовать параметры:
backtrace—boolean(по умолчанию true) — должен ли SQLMon отображать трассу вызовов (то, что отображается синим цветом на скриншоте выше);explain—boolean(по умолчанию true) — должен ли SQLMon отображать план выполнения запросов (EXPLAIN).
Пример файла конфигурации:
return array(
'default' => array(
'type' => 'mysql',
'profiling' => true,
'charset' => 'utf8',
'table_prefix' => '',
// Настройки SQLMon
'backtrace' => true,
'explain' => true,
// ---
'connection' => array(
'username' => 'root',
'password' => 'M1dn19ht',
'hostname' => 'localhost',
'persistent' => false,
'database' => 'feedfetcher'
),
)
);
?>
Вложения:
- SQLMon для Kohana — пример работы (image/png)
Фев
2010
Комментарии к статье «SQLMon для Kohana 3» (4) »
Пожалуйста, не используйте эту форму для комментирования! Данная форма предназначена исключительно для ботов.
Оставить комментарий к записи «SQLMon для Kohana 3»
गते गते पारगते पारसंगते बोधि स्वाहा

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


Спасибо за работу. Буду пробывать) Если можно было бы интересно почитать про написание модулей для Kohana 3. (:
Почитай тут, я описывал Создание модуля на фреймверке Kohana3, будут вопросы обращайся
[...] в отличие от Kohana, с Code Igniter здесь не всё так просто. Во-первых, Code Igniter не [...]
[...] explain был написан программистов Владимиром, вот ссылка на статью посвящённую этому [...]