Operaciones con Bases de Datos MySQL
Usa esta habilidad para trabajos específicos de MySQL: esquemas, consultas, índices, transacciones y operaciones. Antes de confiar en comportamientos dependientes de la versión, establece la versión real del servidor, el modo SQL, el motor de almacenamiento, el juego de caracteres/cotejamiento, la topología y el entorno.
Descubrir antes de consultar
Prefiere migraciones del repositorio, definiciones de esquema, mapeos ORM y consultas de metadatos de solo lectura. Confirma la granularidad de las tablas, las claves primarias y únicas, las claves foráneas, la nulabilidad, las columnas generadas, las particiones, los índices, el volumen de datos y las relaciones. No infieras nombres de columnas físicas a partir de campos de aplicación.
Protege las credenciales y los datos de las filas. Nunca imprimas cadenas de conexión, secretos, registros completos de clientes o datos personales innecesarios. Utiliza la cuenta con menos privilegios y una réplica de solo lectura o que no sea de producción cuando eso satisfaga la tarea.
Escribir consultas correctas y acotadas
- Selecciona columnas con nombre en lugar de
SELECT *cuando el contrato sea conocido. - Usa parámetros tipados para los valores; nunca concatenes entrada no confiable en identificadores o expresiones SQL.
- Haz explícita la cardinalidad de las combinaciones (JOIN) y verifica la multiplicación antes de agregar.
- Maneja deliberadamente
NULL, zonas horarias, cotejamientos, precisión y límites de tiempo inclusivos/exclusivos. - Añade ordenamiento determinista para la paginación o extracciones repetibles. Prefiere paginación por conjunto de claves (keyset pagination) para conjuntos grandes y mutables cuando sea aplicable.
- Acota las lecturas exploratorias con predicados selectivos y un límite, pero no añadas un límite que silenciosamente modifique un requisito de integridad o un agregado necesario.
Valida los resultados con conteos, denominadores, casos límite y un cálculo independiente cuando la decisión sea material.
Analizar el rendimiento de forma segura
Utiliza el comando de plan menos invasivo disponible. Prefiere EXPLAIN o formatos documentados que no ejecuten; usa EXPLAIN ANALYZE solo cuando ejecutar la sentencia esté autorizado y su carga de trabajo esté acotada. Inspecciona las filas estimadas frente a las reales, el tipo de acceso, las claves elegidas y posibles, el orden de las combinaciones, las tablas temporales, la ordenación, el comportamiento de cobertura y la selectividad de los predicados.
Un índice es un compromiso. Evalúa el orden de las columnas, los predicados de igualdad/rango, la ordenación, las necesidades de cobertura, la longitud del prefijo, la amplificación de escritura, el almacenamiento, el comportamiento de bloqueo/creación, los índices redundantes y la frecuencia real de la carga de trabajo. No afirmes que cada columna de filtro o combinación necesita su propio índice.
Controlar mutaciones y transacciones
Antes de INSERT, UPDATE, DELETE, DDL, bloqueos, mantenimiento, replicación o cambios de configuración, confirma el entorno de destino, la estimación de filas afectadas, la autorización, el comportamiento de transacciones/bloqueos, la ruta de copia de seguridad o reversión, y las condiciones de parada observables. Previsualiza el conjunto exacto de destino con una consulta de solo lectura cuando sea posible.
Usa transacciones según el motor y la operación reales; no asumas que todo DDL o efecto externo se revierte. Mantén las transacciones cortas, usa predicados estables, verifica el comportamiento de interbloqueo/reintento y confirma las filas afectadas antes de hacer commit. Para migraciones de esquema/datos, utiliza un enfoque de compatibilidad por fases en lugar de cambios destructivos directos.
Nunca ejecutes mutaciones en producción, crees/elimines índices, cambies usuarios o privilegios, alteres la replicación, mates sesiones o modifiques la configuración del servidor sin autorización explícita para esa operación y entorno.
Transferencia
Devuelve el plan SQL o de cambios, las suposiciones, la evidencia del esquema/versión, los parámetros, la cardinalidad esperada, los hallazgos del plan, el límite de seguridad y los pasos de verificación. Si la ejecución fue autorizada, incluye el entorno, la marca de tiempo, las filas afectadas, el resultado de la transacción, la evidencia antes/después, el riesgo residual y el estado de recuperación. Un comando exitoso no es suficiente; verifica el resultado operativo o los datos solicitados.