Free
ずっと無料
$0
1台のサーバーのすべてを確認できます。
- 保存できる接続は1件。デモと、ソースから開いたレプリカは数えません。
- ヘルス、アクティビティ、ロック、Purge と膨張、レプリケーション、ストレージ、スロークエリ
- フィンガープリントをピン留めしたTLS、SSHトンネル、Face ID
- サーバー側フィルター、外部キー、CSVエクスポート、JSONコピーに対応したデータブラウザー
- 分類器付きの読み取り専用SQL
RowDeck: MySQL® Monitor iPhone版
夜中に呼び出されたのに、ノートPCは家にある?RowDeckは「ヘルス」画面で開き、ロックを保持しているトランザクションを見つけ、その後ろで止まっているセッションの数を数えます。iPhoneから正しいスレッドを終了し、本当の修正はデスクに戻ってから。
内蔵のデモは、MySQLでよくあるインシデントを再現します。忘れられたトランザクションがshop.ordersの行ロックを保持し、その後ろでマイグレーションが待ち、8つのセッションが列をなします。ステップを選ぶと、その画面が表示されます。
サーバーがなくても試せます。「接続」画面でデモデータを見るをタップしてください。アカウントは不要で、Proの操作もサンプルデータで動きます。
InnoDBのロック待ちを、ロックを保持しているスレッドごとにまとめ、それぞれが実行しているSQLと待ち時間を表示します。
ALTER TABLEの待ち行列:誰がテーブルのmetadata lockを待っていて、どのトランザクションがそれを保持しているか。代わりに待機中のALTERをキャンセルするボタンもあります。
InnoDBの最新のdeadlock:誰が何を待っていたか、どのトランザクションがロールバックされたか。
Amazon RDSやAuroraでKILLの権限がない?RowDeckはmysql.rds_killを呼び出し、確認画面でその経路を明示します。
AUTO_INCREMENTの枯渇に気づく。「Purge と膨張」画面は、各auto-incrementの範囲をどれだけ使ったか、purgeがどれだけ遅れているか、どのテーブルとインデックスが無駄に容量を占めているかを示します。
order_items.idがINTの範囲の93%に達すると、RowDeckは範囲の終わりではすべてのINSERTが失敗すると警告し、列を拡張するALTERをコピーします。 ANALYZE TABLEを実行でき、テーブル名を入力すればOPTIMIZE TABLEも実行できます。DROP INDEXとALTERのステートメントはクリップボードにコピーされ、いつ実行するかは自分で決めます。 PRO
最初に「ヘルス」があり、各タイルの奥にネイティブの画面があるので、スマートフォンのキーボードでmysqlプロンプトを使わずに済みます。それ以外はSQLコンソールでカバーし、すべてのステートメントを実行前にチェックします。
1つの判定と、しきい値付きの10枚のタイル:max_connectionsに対する接続数、ブロックされているスレッド、最長のクエリ、1秒あたりのクエリ数、buffer poolのヒット率、purgeの遅延、auto-incrementの余裕、deadlock、レプリケーション、ディスク。表示している間は10秒ごとに更新され、iOSと同じくダークとライトに対応します。
processlistのすべてのスレッドを、待機中のものから順に表示します。実行中、トランザクション中、10秒超、待機中で絞り込んだり、クライアント別にまとめたりできます。
レプリカ側では、IOスレッドとSQLスレッド、遅延、チャネルを止めたエラー。ソース側では、接続中のレプリカとbinlogが占める容量。
performance_schemaのステートメントダイジェストを、合計時間、平均時間、呼び出し回数、検査行数で並べ替えて表示します。
最も大きいスキーマ、テーブル、インデックスを、データ、インデックス、空き領域に分けて表示します。
テーブルの閲覧、サーバー側での絞り込み、外部キーの追跡、ページのCSVエクスポートやJSONとしてのコピーができます。行の編集はProで使えます。
分類器は入力中のステートメントを「読み取り」「書き込み」「DDL」「破壊的」に分類します。Freeは読み取りを実行し、それ以外はProで実行します。
インシデントやロックの連鎖を説明し、修正案を作成します。読むのはマスキング済みのスナップショットで、送信する内容を事前に表示し、自分では何も実行しません。デモでは無料です。
RowDeckはこれらを順番に確認します。どこかで「いいえ」となれば操作は止まり、MySQLには何も届きません。
Freeがサーバーに書き込むことはありません。
接続をRead-onlyに設定すると、Proであっても、そのセッションで書き込みを許可するまで、その接続への書き込みは止まります。
FreeでもProでも、すべてのステートメントに対して動作します。
対象、スキーマ、接続、PRODバッジを示すプレビュー。破壊的な操作と、Production接続での終了は、対象を入力するまで実行されません。
SELECT * FROM orders WHERE id = 4820118; 読み取り UPDATE orders SET status = 'shipped' WHERE id = 4820118; 書き込み CREATE INDEX idx_orders_total ON orders (total); DDL TRUNCATE TABLE shop.sessions; 破壊的 パスワード、ワンタイムコード、またはキーによるSSH:OpenSSH、PEM、PKCS#8、PuTTY形式のEd25519、ECDSA、RSAキー、またはSecure Enclave鍵。踏み台サーバーの奥に中継ホストを2台まで置けます。
RowDeckは初回接続時にサーバー証明書のSHA-256フィンガープリントを表示し、後で変わった場合は接続を止めます。
パスワード、キー、フィンガープリントは、このiPhoneのiOS Keychainに保管されます。アプリはFace IDで開きます。
この権限がないと、MySQLは自分のスレッドしか表示しません。RowDeckはそのことを伝え、解決方法を示します:
GRANT PROCESS ON *.* TO 'oncall'@'%';
内蔵のデモデータで動くRowDeck 1.0。
ヘルス ノートPCを開く前にインシデントを把握。
ロック 行ロックとmetadata lockを1つのツリーに。
接続を終了 確定する前に、何のブロックが解除されるかを確認。
アクティビティ 待機中のスレッドが先頭に。
インデックス 未使用と重複のインデックス、DROP INDEXはコピー済み。
レプリケーション チャネルの状態と適用待ちのトランザクション。
スロークエリ 合計時間順。
ストレージ 最も大きいテーブルとインデックス。
データ ページ内またはサーバー側で絞り込み。
SQLコンソール ステートメントごとに分類。
DDL 実行前に分類器が判定した内容。
アシスタント モデルは自分のもの、操作の判断も自分で。
SSHトンネル 自分のキーと中継ホストを使って接続。
RowDeckを本番サーバーに向けて、すべての監視画面を無料で使ってください。対処が必要になった夜に、$14.99を一度だけ支払います。
ずっと無料
$0
1台のサーバーのすべてを確認できます。
買い切り
$14.99
どのサーバーでも対処できます。
ANALYZE TABLEとOPTIMIZE TABLEの実行 サブスクリプションもアカウントもありません。デモでは、購入前にすべてのProの操作をサンプルデータで試せます。「購入を復元」は購入画面と「設定」にあります。米国以外では、App Storeが現地の通貨で価格を表示します。
RowDeckは、iPhoneから到達できるMySQL 8.0以降とMariaDB 10.5以降で動作します。セルフホストでもマネージドでもよく、Amazon RDSとAurora MySQLも含まれます。Percona Server for MySQLも使えます。
Amazon RDSとAuroraでは管理者が他のユーザーのスレッドをKILLできないため、RowDeckはプロバイダーのプロシージャであるmysql.rds_killを呼び出します。プロキシの背後では、スレッドIDが別のサーバーのものである可能性があるためKILLを送らず、サーバー上で直接実行するステートメントを示します。
MySQL 5.7と10.5より前のMariaDBはサポート範囲外で、TiDBは監視用のテーブルが異なります。接続したときにアプリがそのことを伝えます。
はい。接続設定でSSHトンネルをオンにし、パスワード、キー、またはこのiPhoneで作ったSecure Enclave鍵で踏み台サーバーにサインインします。キーはOpenSSH、PEM、PKCS#8、PuTTY形式のEd25519、ECDSA、RSAに対応し、パスフレーズの有無は問いません。サーバーが求めれば、ワンタイムコードも使えます。
踏み台サーバーがさらに別のホストの奥にある場合は、中継ホストを2台まで追加できます。RowDeckは初回接続時に各ホストキーをピン留めし、どれかが変わると先に進みません。
RowDeckはサーバーへ直接、または踏み台サーバー経由で接続します。間にRowDeckのサーバーは入らず、アカウントも不要です。パスワードとキーはiOS Keychainにとどまります。
最初の画面で「完了」をタップすると、クラッシュレポートはSentryへ、利用回数の集計は当方の分析サーバーへ送られるようになります。この画面では両方のスイッチが最初からオンです。どちらも、その画面で、または後から「設定 › プライバシー」でオフにできます。どちらにも、SQL、スキーマ・テーブル・列の名前、ホスト名、値、認証情報は含まれません。詳しくはプライバシーポリシーをご覧ください。
いいえ。監視画面には読み取り専用の権限で足り、接続フォームにMySQL用とMariaDB用の一覧があります。最も重要なのはPROCESSです。これがないとMySQLは自分のスレッドしか表示せず、RowDeckは空の一覧を出す代わりに、各画面でそのことを伝えます。
Proの操作で他のユーザーのスレッドを終了するにはCONNECTION_ADMINが必要です。Amazon RDSとAuroraでは、RowDeckが代わりにプロバイダーの終了用プロシージャを使います。サーバーが隠している指標には、ゼロではなく理由が表示されます。
KILL QUERYは実行中のステートメントを止め、接続とそのトランザクションは残します。KILL CONNECTIONは接続を閉じ、開いているトランザクションをロールバックします。
開いたトランザクションのままSleep状態のスレッドはステートメントを実行していないため、KILL QUERYでは何も変わらず、ロックも残ります。RowDeckはルートが何をしているかを読み取り、待ち行列を解放する終了方法を提示します。
Freeは一切書き込みません。コンソールでの読み取りは読み取り専用トランザクションの中で実行されます。Proでは、すべての書き込みが4つのチェックを順に通ります:Pro、接続の「Read-only」スイッチ、分類器、そして自分での確認です。破壊的なステートメントは対象を入力するまで実行されず、Productionに設定した接続にはPRODバッジが付き、確認がより厳しくなります。
RowDeckはDROP INDEXとALTER … BIGINTをコピーするだけで、実行は利用者に任せます。binlogのpurgeやレプリカでのトランザクションのスキップは行わず、サーバーにLOAD DATA LOCALや、1回の呼び出しでの複数のステートメントを求めることもありません。
もちろんできます。午前3時にスマートフォンのキーボードで打つなら、RowDeckを使えばperformance_schemaとinformation_schemaをまたぐJOINを書かずに済みます:ロックのツリー、待機中のALTER、その後ろにあるトランザクションは、「ヘルス」からタップ1回です。
質問した画面の、マスキング済みのスナップショットです。ホスト、ポート、IPアドレス、接続名、パスワードは送信されず、ステートメント内の値も送信されません。クラウドのモデルには、スキーマ名、テーブル名、列名がtable_1のようなプレースホルダーとして送られ、RowDeckがiPhone上で実際の名前に戻します。
リクエストはiPhoneから、自分のキーで選んだプロバイダー(Anthropic、OpenAI、OpenRouter、Z.ai、または任意のOpenAI互換エンドポイント)へ、または自分のOllamaへ送られます。送信する前に、モデルが受け取る内容を確認できます。アシスタントはProの機能で、デモでは無料です。SQLの実行は利用者に任せます。
いいえ。Proは、Appleアカウントに紐づく$14.99の買い切りです。監視は無料のままで、アカウントも試用期限もありません。
いいえ。RowDeckはバックグラウンドで動作せず、閉じている間にサーバーを監視することもありません。アラートの仕組みは今のまま使ってください。RowDeckは、呼び出しを受けた後に開く画面です。
RowDeckはiPhoneの縦向き表示用に作られています。iPad専用のレイアウトはありません。
Amazon Web Services、AWS、Amazon RDS、Amazon Auroraは、Amazon.com, Inc.またはその関連会社の商標です。RowDeckはAmazonと提携しておらず、承認も受けていません。
夜中に呼び出される問題を1ページずつ。手動で実行するSQLと、RowDeckでの見え方を紹介します。
ガイドとブログは英語です。
サーバーを追加して証明書をピン留めすれば、すべての監視画面を無料で使えます。Proは、対処が必要になる夜のために操作機能をアンロックします。