Operações com Banco de Dados MySQL
Use esta skill para trabalhos específicos de MySQL, incluindo esquemas, consultas, indexação, transações e operações gerais. Antes de confiar em comportamentos dependentes da versão, estabeleça a versão real do servidor, o modo SQL, o mecanismo de armazenamento, o conjunto de caracteres/collation, a topologia e o ambiente.
Descubra antes de consultar
Prefira migrações de repositório, definições de esquema, mapeamentos ORM e consultas de metadados somente leitura. Confirme a granularidade da tabela, chaves primárias e únicas, chaves estrangeiras, nulabilidade, colunas geradas, partições, índices, volume de dados e relacionamentos. Não infira nomes de colunas físicas a partir de campos da aplicação.
Proteja credenciais e dados de linhas. Nunca imprima strings de conexão, segredos, registros completos de clientes ou dados pessoais desnecessários. Use a conta com privilégios mínimos e uma réplica de não produção ou somente leitura quando isso atender à tarefa.
Escreva consultas corretas e delimitadas
- Selecione colunas nomeadas em vez de
SELECT *quando o contrato for conhecido. - Use parâmetros tipados para valores; nunca concatene entradas não confiáveis em identificadores ou expressões SQL.
- Torne a cardinalidade da junção explícita e verifique multiplicações antes de agregar.
- Lide deliberadamente com
NULL, fusos horários, collations, precisão e limites de tempo inclusivos/exclusivos. - Adicione ordenação determinística para paginação ou extrações repetíveis. Prefira paginação baseada em chave para conjuntos grandes e mutáveis quando aplicável.
- Limite leituras exploratórias com predicados seletivos e um limite, mas não adicione um limite que altere silenciosamente uma agregação ou garantia de completude necessária.
Valide resultados com contagens, denominadores, casos extremos e um cálculo independente onde a decisão for relevante.
Analise o desempenho com segurança
Use o comando de plano disponível menos invasivo. Prefira EXPLAIN ou formatos documentados que não executam; use EXPLAIN ANALYZE apenas quando a execução da instrução e sua carga de trabalho forem autorizadas e delimitadas. Inspecione as linhas estimadas versus reais, o tipo de acesso, as chaves escolhidas e possíveis, a ordem de junção, tabelas temporárias, ordenação, comportamento de cobertura e seletividade de predicados.
Um índice é uma troca. Avalie a ordem das colunas, predicados de igualdade/intervalo, ordenação, necessidades de cobertura, comprimento do prefixo, amplificação de escrita, armazenamento, comportamento de bloqueio/construção, índices redundantes e frequência real da carga de trabalho. Não afirme que toda coluna de filtro ou junção precisa de seu próprio índice.
Controle mutações e transações
Antes de INSERT, UPDATE, DELETE, DDL, bloqueio, manutenção, replicação ou alterações de configuração, confirme o ambiente alvo, a estimativa de linhas afetadas, a autorização, o comportamento de transação/bloqueio, o caminho de backup ou reversão e as condições de parada observáveis. Visualize o conjunto alvo exato com uma consulta somente leitura quando possível.
Use transações de acordo com o mecanismo e a operação reais; não presuma que todas as DDL ou efeitos externos serão revertidos. Mantenha as transações curtas, use predicados estáveis, verifique o comportamento de deadlock/repetição e confirme as linhas afetadas antes de confirmar. Para migrações de esquema/dados, use uma abordagem de compatibilidade em estágios em vez de alterações destrutivas no local.
Nunca execute mutações de produção, crie/remova índices, altere usuários ou privilégios, modifique a replicação, encerre sessões ou altere a configuração do servidor sem autorização explícita para essa operação e ambiente.
Entrega
Retorne o SQL ou plano de alteração, suposições, evidências de esquema/versão, parâmetros, cardinalidade esperada, descobertas do plano, limite de segurança e etapas de verificação. Se a execução foi autorizada, inclua ambiente, carimbo de data/hora, linhas afetadas, resultado da transação, evidências antes/depois, risco residual e estado de recuperação. Um comando bem-sucedido não é suficiente; verifique o resultado operacional ou os dados solicitados.