RowDeck: MySQL® Monitor para iPhone

Mira qué arde en tu MySQL. Apágalo.

¿Te salta una alerta de noche y tienes el portátil en casa? RowDeck se abre en Salud, encuentra la transacción que retiene el bloqueo y cuenta las sesiones atascadas detrás. Termina el thread adecuado desde el iPhone y arregla la causa en tu mesa.

Próximamente en el App Store Avísame por correo cuando salga

Free Pro 14,99 US$ pago único MySQL 8.0+ y MariaDB 10.5+ iOS 17+ iPhone

Mira un incidente en cuatro pantallas
Funciona con MySQL 8.0 o posteriorMariaDB 10.5 o posteriorPercona Server for MySQLAmazon RDSAurora MySQLTus propios servidores
A las 3 de la madrugada

De la alerta al desbloqueo en cuatro pantallas.

La demo integrada reproduce un incidente habitual de MySQL. Una transacción olvidada retiene un bloqueo de fila en shop.orders, una migración espera detrás y ocho sesiones se acumulan en la cola. Elige un paso para ver su pantalla.

Pruébalo sin servidor: en la pantalla Conexiones, toca Explorar datos de demostración. No necesitas cuenta, y las acciones de Pro se ejecutan sobre los datos de ejemplo.

Pantalla Salud de prod-shop en estado Crítico: Bloqueadas muestra 8 en espera, conexiones 112 de 151, la consulta más larga en 09:12
Salud · Crítico · 8 en espera
  • Bloqueos de fila

    Las esperas de bloqueo de InnoDB, agrupadas bajo el thread que retiene el bloqueo, con el SQL que ejecuta cada sesión y cuánto lleva esperando.

  • Metadata locks

    La cola de ALTER TABLE: quién espera un metadata lock de tabla, qué transacción lo mantiene y un botón para cancelar en su lugar el ALTER en espera.

  • Deadlocks

    El último deadlock de InnoDB: quién esperaba qué y qué transacción revirtió.

  • Terminar en Amazon RDS

    ¿Sin permisos de KILL en Amazon RDS o Aurora? RowDeck llama a mysql.rds_kill e indica la vía en la confirmación.

Purge e hinchazón

Vigila AUTO_INCREMENT antes de que empiecen a fallar los INSERT.

Purge e hinchazón muestra cuánto has usado de cada rango de auto-increment, cuánto se ha retrasado el purge y qué tablas e índices ocupan espacio para nada.

  • Margen por columna. Al 93 % del rango INT de order_items.id, RowDeck avisa de que al llegar al final fallan todos los INSERT y copia el ALTER que amplía la columna.
  • History list length, con la transacción más antigua, la que impide a InnoDB purgar las versiones antiguas de las filas.
  • Tablas fragmentadas e índices sin usar o duplicados, con el espacio que ocupa cada uno.
  • Ejecuta ANALYZE TABLE desde la lista, o bien OPTIMIZE TABLE después de escribir el nombre de la tabla. Las sentencias DROP INDEX y ALTER van al portapapeles, y tú decides cuándo ejecutarlas. PRO
Pantalla Purge e hinchazón: order_items.id al 93 % de su rango INT con un aviso de que al llegar al final fallan todos los INSERT, un retraso de purge de 1,2 M y la transacción más antigua
Dentro de la app

Cada pantalla que abres durante un incidente de MySQL.

Salud nada más abrir y una pantalla nativa detrás de cada indicador, para que te ahorres el prompt de mysql en el teclado del teléfono. La consola SQL cubre el resto y revisa cada sentencia antes de ejecutarla.

  • Salud

    Un veredicto y diez indicadores con umbrales: conexiones frente a max_connections, threads bloqueados, la consulta más larga, consultas por segundo, aciertos del buffer pool, retraso de purge, margen de auto-increment, deadlocks, replicación y disco. Se actualiza cada 10 segundos mientras la miras, en oscuro o en claro, como iOS.

    Pantalla Salud con la apariencia clara de la app: Crítico, 8 en espera, conexiones 112 de 151
  • Actividad

    Todos los threads del processlist, primero los que esperan. Filtra por en ejecución, en transacción, más de 10 s o en espera, o agrupa los threads por cliente.

  • Replicación

    Desde la réplica: los threads de IO y SQL, el retraso y el error que detuvo un canal. En el origen: las réplicas conectadas y el espacio que ocupan los binlogs.

  • Consultas lentas

    Digests de sentencias de performance_schema, ordenados por tiempo total, tiempo medio, llamadas o filas examinadas.

  • Almacenamiento

    Los esquemas, tablas e índices más grandes, divididos en datos, índices y espacio libre.

  • Datos

    Explora tablas, filtra en el servidor, sigue claves foráneas, exporta una página como CSV o cópiala como JSON. La edición de filas llega con Pro.

  • Consola SQL

    El clasificador etiqueta cada sentencia mientras escribes: Lectura, Escritura, DDL o Destructiva. Free ejecuta lecturas; Pro ejecuta el resto.

  • PRO

    Asistente de IA con tu propio modelo

    Explica un incidente o una cadena de bloqueos y prepara un borrador de la solución. Lee una instantánea enmascarada, te muestra lo que va a enviar y no ejecuta nada por su cuenta. Gratis en la demo.

    • Anthropic
    • OpenAI
    • OpenRouter
    • Z.ai
    • Servidor compatible con OpenAI
    • Ollama en tu red
Antes de que nada escriba

Cuatro controles entre tu pulgar y el servidor.

RowDeck los comprueba en orden. Un no en cualquier paso detiene la acción, y nada llega a MySQL.

  1. Pro

    Free nunca escribe en tu servidor.

  2. Conexión de solo lectura

    Marca una conexión como Read-only y las escrituras se detienen ahí, también con Pro, hasta que las desbloquees para la sesión.

  3. Clasificador

    Se ejecuta en cada sentencia, en Free y en Pro.

  4. Tu confirmación

    Una vista previa con el objetivo, el esquema, la conexión y la insignia PROD. Los pasos destructivos, y terminar un thread en una conexión Production, esperan a que escribas el objetivo.

Lo que vio el clasificador prod-shop PROD
SELECT * FROM orders WHERE id = 4820118; Lectura
UPDATE orders SET status = 'shipped' WHERE id = 4820118; Escritura
CREATE INDEX idx_orders_total ON orders (total); DDL
TRUNCATE TABLE shop.sessions; Destructiva
  • A través de tu bastión

    SSH con contraseña, código de un solo uso o clave: Ed25519, ECDSA o RSA en formato OpenSSH, PEM, PKCS#8 o PuTTY, o una clave de Secure Enclave. Hasta dos hosts de salto detrás del bastión.

  • TLS fijado

    RowDeck muestra la huella digital SHA-256 del certificado del servidor en la primera conexión y se detiene si cambia más tarde.

  • Keychain y Face ID

    Las contraseñas, las claves y las huellas digitales viven en el iOS Keychain de este iPhone. Face ID abre la app.

  • Honesto sin PROCESS

    Sin él, MySQL solo te muestra tus propios threads. RowDeck te lo dice y te da la solución:

    GRANT PROCESS ON *.* TO 'oncall'@'%';
Pantallas

RowDeck 1.0 con los datos de demostración integrados.

Pantalla Salud: Crítico, 8 en espera, diez indicadores

Salud El incidente antes de abrir el portátil.

Árbol de Bloqueos con dos raíces de bloqueo y un ALTER TABLE que espera un metadata lock

Bloqueos Bloqueos de fila y metadata locks en un solo árbol.

Hoja «Terminar la conexión que bloquea» con el ID del thread escrito para confirmar

Terminar conexión Mira qué desbloquea antes de confirmar.

Pantalla Actividad con los filtros En ejecución, En transacción, > 10 s, En espera y Todas

Actividad Primero los threads en espera.

Purge e hinchazón: seis índices sin usar que ocupan 34 GB, con «Copiar la sentencia DROP INDEX»

Índices Índices sin usar y duplicados, con DROP INDEX ya copiado.

Replicación en una réplica: threads de IO y SQL en ejecución, 4,2 s por detrás del origen

Replicación Estado del canal y transacciones por aplicar.

Consultas lentas ordenadas por tiempo total, con llamadas, tiempo medio y filas examinadas

Consultas lentas Ordenadas por tiempo total.

Pantalla Almacenamiento: 412 GB de datos e índices, los esquemas y las tablas más grandes

Almacenamiento Las tablas e índices más grandes.

Pestaña Datos de shop.orders con un filtro de pedidos pendientes

Datos Filtra en la página o en el servidor.

Consola SQL con una consulta de lectura sobre performance_schema y su resultado

Consola SQL Cada sentencia clasificada.

Consola SQL con CREATE INDEX clasificada como DDL que hace commit de cualquier transacción abierta

DDL Lo que vio el clasificador antes de ejecutarla.

Respuesta del asistente sobre una transacción olvidada que retiene un bloqueo de fila, con los threads que sugiere terminar

Asistente Tu modelo, y cada acción la decides tú.

Formulario de nueva conexión con un túnel SSH a través de un bastión e importación de clave

Túnel SSH Con tu clave y tus hosts de salto.

Salud El incidente antes de abrir el portátil.

Precios

Monitorizar es gratis. Pro es una sola compra.

Conecta RowDeck a tu servidor de producción y usa gratis todas las pantallas de monitorización. Paga 14,99 US$ una vez, la noche en que tengas que actuar.

Free

para siempre

0 US$

Míralo todo en un servidor.

  • Una conexión guardada. La demo y una réplica que abras desde su origen no cuentan.
  • Salud, Actividad, Bloqueos, Purge e hinchazón, Replicación, Almacenamiento y Consultas lentas
  • TLS con huella digital fijada, túneles SSH y Face ID
  • Explorador de datos con filtros en el servidor, claves foráneas, exportación a CSV y copia como JSON
  • SQL de solo lectura con el clasificador

Pro

compra única

14,99 US$

Actúa en cualquier servidor.

  • Conexiones guardadas ilimitadas
  • Terminar consultas y conexiones, desbloquear una cadena de bloqueos
  • Ejecutar ANALYZE TABLE y OPTIMIZE TABLE
  • Escrituras, DDL y edición de filas, tras confirmación
  • El asistente de IA con tu propia clave o tu propio Ollama

Sin suscripción y sin cuenta. La demo te permite probar todas las acciones de Pro con datos de ejemplo antes de comprar. Restaurar compras está en la pantalla de Pro y en Ajustes. Fuera de EE. UU., el App Store muestra el precio en tu moneda.

Próximamente en el App Store Avísame por correo cuando salga

Free Pro 14,99 US$ pago único MySQL 8.0+ y MariaDB 10.5+ iOS 17+ iPhone

Preguntas

Preguntas sobre RowDeck y MySQL

¿Falta algo? Escribe a support@rowdeck.app.

¿Funciona con Amazon RDS, Aurora o mis propios servidores?

RowDeck funciona con MySQL 8.0 o posterior y MariaDB 10.5 o posterior a los que llegue tu iPhone, autoalojados o gestionados, incluidos Amazon RDS y Aurora MySQL. Percona Server for MySQL también funciona.

En Amazon RDS y Aurora, donde un administrador no puede hacer KILL a threads de otros usuarios, RowDeck llama al procedimiento del proveedor, mysql.rds_kill. Detrás de un proxy no envía ningún KILL, porque el ID del thread puede pertenecer a otro servidor, y te da la sentencia para que la ejecutes en el propio servidor.

MySQL 5.7 y MariaDB anterior a 10.5 quedan fuera del rango compatible, y TiDB usa otras tablas de monitorización. La app te lo dice al conectarte.

¿Puede llegar a una base de datos detrás de un bastión?

Sí. Activa el túnel SSH en la conexión e inicia sesión en el bastión con una contraseña, una clave o una clave de Secure Enclave creada en este iPhone. Las claves pueden ser Ed25519, ECDSA o RSA en formato OpenSSH, PEM, PKCS#8 o PuTTY, con o sin frase de contraseña. Los códigos de un solo uso funcionan cuando el servidor los pide.

Si el bastión está detrás de otro host, añade hasta dos hosts de salto. RowDeck fija la clave de cada host en la primera conexión y se niega a continuar si alguna cambia.

¿Mis credenciales o mis datos salen de mi iPhone?

RowDeck se conecta directamente a tu servidor o a través de tu bastión. No hay ningún servidor de RowDeck en medio, y no necesitas cuenta. Las contraseñas y las claves se quedan en el iOS Keychain.

Los informes de fallos van a Sentry y los recuentos de uso, a nuestro propio servidor de analítica, una vez que tocas Listo en la primera pantalla, donde los dos interruptores vienen activados. Puedes desactivar cualquiera de ellos ahí o más tarde en Ajustes › Privacidad. Ninguno contiene tu SQL, nombres de esquemas, tablas o columnas, nombres de host, valores ni credenciales. Los detalles están en la política de privacidad.

¿Necesito SUPER o una cuenta de administrador?

No. Las pantallas de monitorización necesitan permisos de solo lectura, y el formulario de conexión los enumera para MySQL y para MariaDB. El que más importa es PROCESS: sin él, MySQL solo te muestra tus propios threads, y RowDeck lo indica en cada pantalla en lugar de mostrar una lista vacía.

Las acciones de Pro necesitan CONNECTION_ADMIN para terminar threads de otros usuarios; en Amazon RDS y Aurora, RowDeck usa en su lugar el procedimiento de terminación del proveedor. Una métrica que el servidor oculta muestra un motivo, nunca un cero.

KILL QUERY o KILL CONNECTION: ¿cuál de los dos?

KILL QUERY detiene la sentencia en ejecución y conserva la conexión y su transacción. KILL CONNECTION cierra la conexión y revierte su transacción abierta.

Un thread en Sleep con una transacción abierta no ejecuta ninguna sentencia, así que KILL QUERY no cambia nada y sus bloqueos se mantienen. RowDeck lee qué está haciendo la raíz y te propone la acción que libera la cola.

¿Puede RowDeck romper mi base de datos?

Free nunca escribe: las lecturas de la consola se ejecutan dentro de una transacción de solo lectura. Con Pro, cada escritura pasa cuatro controles en orden: Pro, el interruptor Read-only de la conexión, el clasificador y tu confirmación. Las sentencias destructivas esperan a que escribas el objetivo, y una conexión marcada como Production lleva la insignia PROD y confirmaciones más estrictas.

RowDeck te copia DROP INDEX y ALTER … BIGINT y deja en tus manos ejecutarlos. No purga binlogs ni salta una transacción en una réplica, y nunca pide al servidor LOAD DATA LOCAL ni varias sentencias en una sola llamada.

¿Por qué no entrar por SSH y ejecutar mysql?

Puedes hacerlo. A las 3 de la madrugada y con el teclado del teléfono, RowDeck te ahorra los joins entre performance_schema e information_schema: el árbol de bloqueos, el ALTER en espera y la transacción que lo retiene están a un toque de Salud.

¿Qué ve el asistente de IA?

Una instantánea enmascarada de la pantalla sobre la que preguntaste. El host, el puerto, las direcciones IP, los nombres de conexión y las contraseñas nunca salen, y los valores dentro de las sentencias tampoco. Con modelos en la nube, los nombres de esquemas, tablas y columnas salen sustituidos por marcadores del tipo table_1, y RowDeck restaura los nombres reales en tu iPhone.

Las solicitudes van de tu iPhone al proveedor que elegiste, con tu propia clave (Anthropic, OpenAI, OpenRouter, Z.ai o cualquier endpoint compatible con OpenAI), o a tu propio Ollama. Ves lo que recibirá el modelo antes de enviarlo. El asistente forma parte de Pro, es gratis en la demo y deja en tus manos ejecutar el SQL.

¿Hay suscripción?

No. Pro es una sola compra de 14,99 US$ vinculada a tu cuenta de Apple. La monitorización sigue siendo gratis, sin cuenta y sin periodo de prueba que caduque.

¿Me avisará cuando algo se rompa?

No. RowDeck no trabaja en segundo plano ni vigila servidores mientras está cerrada. Deja tus alertas donde están: RowDeck es la pantalla que abres cuando salta la alerta.

¿Funciona en iPad?

Hicimos RowDeck para iPhone, en vertical. No tiene un diseño propio para iPad.

Amazon Web Services, AWS, Amazon RDS y Amazon Aurora son marcas comerciales de Amazon.com, Inc. o sus filiales. RowDeck no está afiliada a Amazon ni cuenta con su respaldo.

Guías

Guías para incidentes de MySQL.

Los problemas que te despiertan de noche, una página para cada uno: el SQL para ejecutar a mano y lo que muestra RowDeck.

Las guías y el blog están en inglés.

Tenlo en el teléfono antes del próximo incidente.

Añade un servidor, fija su certificado y todas las pantallas de monitorización siguen siendo gratis. Pro desbloquea las acciones para la noche en que las necesites.

Próximamente en el App Store Avísame por correo cuando salga

Free Pro 14,99 US$ pago único MySQL 8.0+ y MariaDB 10.5+ iOS 17+ iPhone