MySQLWorkbench と DataGripを比較する

MySQLの公式ツール [**MySQL Workbench Communityエディション**](https://www.mysql.com/jp/products/workbench/) (以下MySQL Workbench)とJetBrains製品のデータベース統合環境 [**DataGrip**](https://www.jetbrains.com/datagrip/) の比較記事です。
開発の際に個人的に使うことのある機能を比較しており、全機能は対象としていません。

# TL;DR

クエリを書くときは多機能かつ高機能の **DataGrip** が便利だが、
DB設計の際に使うツールとしては **MySQL Workbench** が良い

# 基本的な情報

2019年3月時点での情報

||MySQL Workbench|DataGrip|
|---|---|---|
|接続・操作可能なDB|MySQL|MySQL、PostgreSQL、Microsoft SQL Server、Oracleなど|
|使用可能なOS|macOS, Windows,Linux|macOS, Windows,Linux|
|価格|無料|パーソナルライセンスで1年目は$89([公式ページ](https://www.jetbrains.com/store/?fromMenu#edition=personal))|
|備考||IntelliJ IDEA, PhpStormなど他のJetBrainsのIDEでもDataGripと同様の機能を使うことができるようです([DataGrip FAQ](https://intellij-support.jetbrains.com/hc/en-us/articles/115000877044-DataGrip-FAQ))|

# エディタ

※良いと思う方を<font color="Red">赤字</font>にしてます

||MySQL Workbench|DataGrip|
|---|---|---|
|コード補完|レスポンス速度は少し遅く、補完されないときもある<br>![MySQLWorkbenchCoding_1.gif](https://qiita-image-store.s3.amazonaws.com/0/299916/9904e5d5-9ee0-d833-dca8-60e209748834.gif)|<font color="Red">レスポンス速い![DataGrip_Coding_1.gif](https://qiita-image-store.s3.amazonaws.com/0/299916/01ae4a35-277b-709a-9b2c-998dc1cd9f49.gif)<br>結合句も自動生成可能![DataGrip_Coding_2.gif](https://qiita-image-store.s3.amazonaws.com/0/299916/d004e496-618d-6eb9-9c1b-03f9d6f69150.gif)SELECT句の補完の精度を上げるにはFROM句を先に書くと良いが、<br>FROM句を先に書くには[後置コード補完](https://pleiades.io/help/datagrip/auto-completing-code.html#postfix_completion)が役に立つ</font>![DataGrip_Coding_3.gif](https://qiita-image-store.s3.amazonaws.com/0/299916/eeb2dc4c-52d2-bf2c-fbe0-0c52068db5d5.gif)|
|スニペット|スニペットリストに登録すれば右クリックで張り付け可能|<font color="Red">[ライブ・テンプレート](https://pleiades.io/help/datagrip/using-live-templates.html)で自由に追加可能。特定ワードを入力してtabを押すだけで自動的にテンプレートが挿入される![DataGrip_LiveTemplateCoding_1.gif](https://qiita-image-store.s3.amazonaws.com/0/299916/85cffe86-f526-ebed-5f6b-5071d3494db0.gif)</font>
|コードフォーマット|ユーザーが可能な設定はキーワードの大文字化・小文字化のみ|<font color="Red">様々な設定が可能</font>![format_setting.PNG](https://qiita-image-store.s3.amazonaws.com/0/299916/7d0864ce-d00a-97cf-ff2e-f92d5dbcc492.png)|
|実行計画|![MySQLWorkbench_execute_plan2.PNG](https://qiita-image-store.s3.amazonaws.com/0/299916/7f3250d9-d06b-eb2a-2d0e-44f54138e238.png)<font color="Red">表形式で確認できるが、画像でも確認可能<br>(SQL詳しくない人に説明しなければならないときには画像のほうが伝わりやすい印象)</font><br>![MySQLWorkbench_execute_plan1.PNG](https://qiita-image-store.s3.amazonaws.com/0/299916/45af324c-7eb8-cbb6-6037-abbb1f986ceb.png)|表形式でのみ表示可能![DataGrip_execute_plan1.PNG](https://qiita-image-store.s3.amazonaws.com/0/299916/dc4a1d93-4706-982e-34ae-f17a582cf641.png)|

# データベース設計・管理

||MySQL Workbench|DataGrip|
|---|---|---|
|リバースエンジニアリング(DB->ER図)|コメントを付けることができて、pngやUMLで出力することが可能<br>![employees@localhost.png](https://qiita-image-store.s3.amazonaws.com/0/299916/8b1a79b1-1ae8-dbd4-d505-6f0d61e28cb0.png)|<font color="Red">コメントだけでなくLayerを設定することが可能<br>数十個以上あるテーブルを整理する場合などに便利<br></font><br>![Workbench_ER.PNG](https://qiita-image-store.s3.amazonaws.com/0/299916/4c1eb31d-bea9-9685-ff55-9aad30ca1c46.png)
|フォワードエンジニアリング(ER図->DB)|非対応<br>そのためER図上でテーブル追加などは不可能<br>(一応4年前から[要望](https://youtrack.jetbrains.com/issue/DBE-1248)は出ている様子)|<font color="Red">テーブル追加などER図上で行った変更をDBに反映することが可能<br>直接反映するだけでなくSQLファイル化できるのでチーム連携が容易</font>|
|バックアップ(mysqldump)|可能|可能|
|リストア|可能|可能|

# その他

- MySQLWorkbenchは挙動が怪しいことが割とある
    - Macでカーソル入力が思い通りにいかないことがある(上を入力すると下に動いたり)
        - 恐らくこの辺と関連 [Up and down keyboard keys not behaving normally on the SQL editor](https://bugs.mysql.com/bug.php?id=94430)
    - 突然落ちて起動できなくなる
        - [Windows環境でMySQL Workbenchが起動できないとき](https://qiita.com/n_slender/items/6213a7971816bf63fbf1)
        - [Workbenchが落ちる](http://technique.poni.jp/article/437270192.html)
        - [MySQL Workbenchが停止したときの対処法](https://hrroct.hatenablog.com/entry/2016/11/01/150626)
- バグの報告先
    - MySQLWorkbenchは https://bugs.mysql.com/ 
    - DataGrip は https://youtrack.jetbrains.com/issues/DBE
        - どちらも英語入力&既出でないことの確認必要