dbForge Studio — менеджер MySQL баз данных

Владимир | | MySQL, Web разработка.

dbforge mysql

Некоторое время назад я начал пользоваться dbForge Studio for MySQL, программа оказалась очень неплохой, с бесплатной версией для некоммерческого использования и интересными возможностями, о которых я и хочу рассказать. Кроме того, разработчики пошли на встречу и согласились сделать небольшой подарок для всех читателей этого блога, но о нём в конце статьи.

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

Условно все программы такого типа можно разделить на два класса: с web интерфейсом и без него (десктопные).

Наиболее известным представителем первого класса является phpMyAdmin. Так или иначе, с ним сталкивались практически все web разработчики. Дело в том, что web приложения для администрирования баз (и не только) очень популярны на shared хостингах, т.к. для работы с базой не нужен SSH доступ и довольно легко устанавливать различные ограничения. С точки зрения пользователей тоже есть положительные моменты:

  • не нужно ничего устанавливать и настраивать на своём компьютере;
  • получить доступ к базе можно с любого устройства, подключённого к интернет;
  • в phpMyAdmin реализованы практически все необходимые возможности (просмотр и редактирование данных, поиск, выполнение SQL запросов, экспорт, импорт и т.д.).

Но, как только вы переезжаете на VPS или выделенный сервер, ситуация меняется. И проблемы в использовании web приложений становятся заметнее:

  1. Ограничения времени выполнения и ресурсов скриптов создают проблемы при экспорте/импорте данных. Т.е. для экспорта/импорта больших баз придётся использовать другие инструменты.
  2. Т.к. приложение доступно из интернета, нужно следить за его безопасностью. В случае VPS или выделенного сервера это полностью ваша проблема, а не хостера.
  3. Не получится работать одновременно с несколькими базами данных, расположенными на разных серверах.

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

Подключение к базе данных

Тут очень важно, чтобы была возможность подключиться через SSH. Если её нет, то должны быть другие, очень веские причины для использования такого MySQL менеджера. Конечно, вы можете открыть доступ к MySQL серверу снаружи, но при этом придётся обеспечивать его безопасность (например, создавать списки IP адресов, с которых можно к нему подключаться), а это дополнительная работа.

В dbForge подключение через SSH реализовано, нужные настройки находятся на вкладке «Безопасность».

connection

 

connection ssh

 

Примечание. Скриншоты для этой статьи я сделал с локального сервера, установленного в VirtualBox, поэтому использована аутентификация с помощью пароля. Для рабочих серверов лучше использовать ключи и запретить вход под root’ом.

Основные возможности

Под ними я понимаю: просмотр, изменение, удаление и добавление данных, а также поиск. Т.к. CRUD операции реализованы практически одинаково во всех подобных программах, я просто покажу скриншот из dbForge. Вы выбираете нужную таблицу, и программа покажет информацию о таблице и первые 1000 строк данных. Естественно, вы можете использовать постраничную навигацию, редактировать данные, структуру таблицы, создавать индексы и т.п.

table data

 

Для создания правил фильтрации данных предусмотрен «Конструктор фильтра». Открывается из меню «Данные» -> «Фильтр» -> «Условие...». Конструктор сделан достаточно удобно, есть календарь для ввода дат, выпадающие списки с перечнем полей таблицы и условиями сравнения.

filter

 

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

Переходим к более «продвинутым» возможностям.

Создание запросов

В dbForge Studio реализовано два режима создания запросов:

  1. редактор SQL;
  2. дизайнер запросов.

Для того чтобы создавать запросы, вы должны хотя бы на базовом уровне знать SQL. В противном случае никакие инструменты вам не помогут. Инструменты могут только сделать работу комфортнее. Например, выделить цветом ключевые слова, добавить отступы и алиасы для таблиц, показать варианты автодополнения. Кстати, автодополнение сделали в dbForge очень удобно (см. скриншот), они сгруппировали списки полей по таблицам.

sql editor

 

Дизайнер запросов на первый взгляд очень напоминает аналогичный инструмент в Access. Но всё-таки он ближе к SQL режиму, чем реализация в Access. Это хорошо видно по представлению информации на вкладке «Соединения» (я специально показал её на скриншоте). Формат, в котором представлена связь, практически совпадает с записью в SQL режиме.

sql constructor

 

Также есть возможность переключиться в SQL режим и обратно.

Профилирование запросов

Ещё одна удобная функция. Вы указываете запрос, а программа вам показывает вывод

EXPLAIN ...request...
SHOW PROFILE FOR QUERY ...

и

SHOW SESSION STATUS;

Всю эту информацию можно получить с помощью обычных SQL запросов, но dbForge позволяет выбрать несколько результатов и сравнить их. Данные выводятся в соседних колонках (показано на скриншоте), которые можно отсортировать по возрастанию или убыванию.

profiling

 

Создание диаграмм

Этот режим полезен для разработки структуры MySQL баз. Вы можете либо добавлять новые таблицы на диаграмму, создавать поля и устанавливать связи, либо сформировать диаграмму из существующих таблиц. Последний вариант удобно использовать для подготовки документации и статей для блога 🙂

diagramm

 

Обратите внимание. При создании связей между таблицами на диаграмме у вас есть возможность получить запрос, который эту связь создаёт. Для этого нажмите кнопку «Скрипт изменений» (показана на скриншоте).

creating foreign keys

 

Для данного примера вы получите следующий скрипт:

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 выглядят следующим образом

schema comparison

 

Как видите, в данном случае в БД, которая расположена справа, отсутствует таблица wp_td_terms и используется движок MYISAM вместо INNODB.

Также можно сравнить и содержимое баз.

Резервное копирование и восстановление данных

Ради эксперимента я создал копию базы размером около 800 МБ. Процесс прошел довольно быстро и без ошибок. При создании копии можно указать множество настроек, например, заблокировать таблицы и т.п.

backup

 

При восстановлении нужно только правильно указать кодировку дампа.

Также есть возможность экспорта данных в разные форматы, вроде CSV и XML.

Создание отчётов

Это ещё одна возможность, которая сильно напомнила Access. Отчеты создаются с помощью мастера, который предлагает либо использовать существующие таблицы, либо создать запрос. Также предлагается выбрать вариант оформления, группировку и сортировку. После завершения работы мастера открывается дизайнер отчета в котором можно сделать окончательные настройки.

report designer

 

Результат можно распечатать или экспортировать в один из поддерживаемых форматов (HTML, XLS, JPEG, PDF).

report final

 

Заключение

В этом обзоре я останавливался в основном на возможностях, которые показались мне наиболее интересными, и доступны в версии для некоммерческого использования. А вообще dbForge распространяется в трёх редакциях: Express, Standard и Professional, которые отличаются ценой и набором поддерживаемых функций. Сравнить их можно здесь. При этом использование любой из версий упрощает MySQL разработку.

Подарок

Специально для вас компания Devart предоставлет 20% скидку на продукты линейки MySQL версий Standart и Professional.
Для того, чтобы ей воспользоваться, при заказе товара введите промо код

simplecoding

Промо код действителен до 20.11.2014.

Успехов!

  • dimedr

    MysqlWorkbench кросплотформенно и бесплатно, функциональности не меньше

    • Я довольно часто пользовался (и пользуюсь) MysqlWorkbench. Чисто субъективно некоторые функции сделаны менее удобно, чем в dbForge. Например, просмотр данных. И конструктор запросов в dbForge удобнее.

      • WarGot

        Попробуй HeidiSQL
        Давно пользуюсь, перешёл на него с MysqlWorkbench. dbForge буду пробовать.

        • Спасибо за совет. Интересный вариант. Редактора диаграмм и конструктора запросов нет, но все основные возможности есть и GPL лицензия.
          Экспорт/импорт баз размером больше 1ГБ пробовали делать? Сбои были?

  • Marcell

    Эта программа также бесплтана, как и MysqlWorkbench. Платна только её комерческая версия.

  • спамер

    камарждопасусликиокеееей?

    • спамер

      блёвжупоэбютибячёблё?

  • Elena

    Здравствуйте! Какое время для выполнение скрипта должно быть выставлено в панели управления хостингом?

    • Если я правильно понял вопрос, в панели управления вы можете выставить только предельно допустимое время выполнения скриптов. По истечении этого времени скрипт автоматически будет завершен.
      Уменьшить реальное время выполнения можно за счет оптимизации скрипта и/или установки более мощного сервера. Также поможет обновление PHP, особенно если сейчас вы используете какую-то старую версию.

  • MRZ
  • Михаил Позднаков

    Я тоже пользуюсь dbForge'м, мне нравится. Спасибо разработчикам!