Некоторое время назад я начал пользоваться dbForge Studio for MySQL, программа оказалась очень неплохой, с бесплатной версией для некоммерческого использования и интересными возможностями, о которых я и хочу рассказать. Кроме того, разработчики пошли на встречу и согласились сделать небольшой подарок для всех читателей этого блога, но о нём в конце статьи.
На сегодняшний день существует множество инструментов для работы с MySQL базами данных. Основные возможности, такие как просмотр и редактирование данных, реализованы во всех инструментах, но дополнительные функции отличаются довольно сильно и очень часто именно они экономят наше время.
Условно все программы такого типа можно разделить на два класса: с web интерфейсом и без него (десктопные).
Наиболее известным представителем первого класса является phpMyAdmin. Так или иначе, с ним сталкивались практически все web разработчики. Дело в том, что web приложения для администрирования баз (и не только) очень популярны на shared хостингах, т.к. для работы с базой не нужен SSH доступ и довольно легко устанавливать различные ограничения. С точки зрения пользователей тоже есть положительные моменты:
- не нужно ничего устанавливать и настраивать на своём компьютере;
- получить доступ к базе можно с любого устройства, подключённого к интернет;
- в phpMyAdmin реализованы практически все необходимые возможности (просмотр и редактирование данных, поиск, выполнение SQL запросов, экспорт, импорт и т.д.).
Но, как только вы переезжаете на VPS или выделенный сервер, ситуация меняется. И проблемы в использовании web приложений становятся заметнее:
- Ограничения времени выполнения и ресурсов скриптов создают проблемы при экспорте/импорте данных. Т.е. для экспорта/импорта больших баз придётся использовать другие инструменты.
- Т.к. приложение доступно из интернета, нужно следить за его безопасностью. В случае VPS или выделенного сервера это полностью ваша проблема, а не хостера.
- Не получится работать одновременно с несколькими базами данных, расположенными на разных серверах.
Поэтому в таких случаях использовать десктопные приложения гораздо удобнее.
Подключение к базе данных
Тут очень важно, чтобы была возможность подключиться через SSH. Если её нет, то должны быть другие, очень веские причины для использования такого MySQL менеджера. Конечно, вы можете открыть доступ к MySQL серверу снаружи, но при этом придётся обеспечивать его безопасность (например, создавать списки IP адресов, с которых можно к нему подключаться), а это дополнительная работа.
В dbForge подключение через SSH реализовано, нужные настройки находятся на вкладке «Безопасность».
Примечание. Скриншоты для этой статьи я сделал с локального сервера, установленного в VirtualBox, поэтому использована аутентификация с помощью пароля. Для рабочих серверов лучше использовать ключи и запретить вход под root’ом.
Основные возможности
Под ними я понимаю: просмотр, изменение, удаление и добавление данных, а также поиск. Т.к. CRUD операции реализованы практически одинаково во всех подобных программах, я просто покажу скриншот из dbForge. Вы выбираете нужную таблицу, и программа покажет информацию о таблице и первые 1000 строк данных. Естественно, вы можете использовать постраничную навигацию, редактировать данные, структуру таблицы, создавать индексы и т.п.
Для создания правил фильтрации данных предусмотрен «Конструктор фильтра». Открывается из меню «Данные» -> «Фильтр» -> «Условие...»
. Конструктор сделан достаточно удобно, есть календарь для ввода дат, выпадающие списки с перечнем полей таблицы и условиями сравнения.
В целом, интерфейс достаточно приятный. Но если вы раньше пользовались другими MySQL клиентами, то нужно будет привыкнуть.
Переходим к более «продвинутым» возможностям.
Создание запросов
В dbForge Studio реализовано два режима создания запросов:
- редактор SQL;
- дизайнер запросов.
Для того чтобы создавать запросы, вы должны хотя бы на базовом уровне знать SQL. В противном случае никакие инструменты вам не помогут. Инструменты могут только сделать работу комфортнее. Например, выделить цветом ключевые слова, добавить отступы и алиасы для таблиц, показать варианты автодополнения. Кстати, автодополнение сделали в dbForge очень удобно (см. скриншот), они сгруппировали списки полей по таблицам.
Дизайнер запросов на первый взгляд очень напоминает аналогичный инструмент в Access. Но всё-таки он ближе к SQL режиму, чем реализация в Access. Это хорошо видно по представлению информации на вкладке «Соединения» (я специально показал её на скриншоте). Формат, в котором представлена связь, практически совпадает с записью в SQL режиме.
Также есть возможность переключиться в SQL режим и обратно.
Профилирование запросов
Ещё одна удобная функция. Вы указываете запрос, а программа вам показывает вывод
EXPLAIN ...request... SHOW PROFILE FOR QUERY ...
и
SHOW SESSION STATUS;
Всю эту информацию можно получить с помощью обычных SQL запросов, но dbForge позволяет выбрать несколько результатов и сравнить их. Данные выводятся в соседних колонках (показано на скриншоте), которые можно отсортировать по возрастанию или убыванию.
Создание диаграмм
Этот режим полезен для разработки структуры MySQL баз. Вы можете либо добавлять новые таблицы на диаграмму, создавать поля и устанавливать связи, либо сформировать диаграмму из существующих таблиц. Последний вариант удобно использовать для подготовки документации и статей для блога 🙂
Обратите внимание. При создании связей между таблицами на диаграмме у вас есть возможность получить запрос, который эту связь создаёт. Для этого нажмите кнопку «Скрипт изменений» (показана на скриншоте).
Для данного примера вы получите следующий скрипт:
USE workshop; -- -- Изменить таблицу "table2" -- ALTER TABLE table2 ADD CONSTRAINT FK_table2_table1_id FOREIGN KEY (t_id) REFERENCES table1(id) ON DELETE NO ACTION ON UPDATE NO ACTION;
Сравнение баз данных
В идеальном мире эта функция не нужна, т.к. структуры баз данных у всех разработчиков и в продакшене должны совпадать. Многие современные фреймворки поддерживают миграции, предназначенные для удобного обновления структуры баз. Но в реальной жизни получается по-разному 🙂 поэтому возможность быстро сравнить две базы совсем не лишняя и может сэкономить много времени.
Результаты сравнения в dbForge Studio выглядят следующим образом
Как видите, в данном случае в БД, которая расположена справа, отсутствует таблица wp_td_terms
и используется движок MYISAM
вместо INNODB
.
Также можно сравнить и содержимое баз.
Резервное копирование и восстановление данных
Ради эксперимента я создал копию базы размером около 800 МБ. Процесс прошел довольно быстро и без ошибок. При создании копии можно указать множество настроек, например, заблокировать таблицы и т.п.
При восстановлении нужно только правильно указать кодировку дампа.
Также есть возможность экспорта данных в разные форматы, вроде CSV и XML.
Создание отчётов
Это ещё одна возможность, которая сильно напомнила Access. Отчеты создаются с помощью мастера, который предлагает либо использовать существующие таблицы, либо создать запрос. Также предлагается выбрать вариант оформления, группировку и сортировку. После завершения работы мастера открывается дизайнер отчета в котором можно сделать окончательные настройки.
Результат можно распечатать или экспортировать в один из поддерживаемых форматов (HTML, XLS, JPEG, PDF).
Заключение
В этом обзоре я останавливался в основном на возможностях, которые показались мне наиболее интересными, и доступны в версии для некоммерческого использования. А вообще dbForge распространяется в трёх редакциях: Express, Standard и Professional, которые отличаются ценой и набором поддерживаемых функций. Сравнить их можно здесь. При этом использование любой из версий упрощает MySQL разработку.
Подарок
Специально для вас компания Devart предоставлет 20% скидку на продукты линейки MySQL версий Standart и Professional.
Для того, чтобы ей воспользоваться, при заказе товара введите промо код
simplecoding
Промо код действителен до 20.11.2014.
Успехов!