Tuning de Queries Lentas no MySQL InnoDB

Descubra por que o InnoDB ignora seu índice e receba o ALTER TABLE ou rewrite exato.

Por Os Melhores Prompts

Categoria: Bancos de dados

O que ele faz

Faz tuning a partir do EXPLAIN ANALYZE e do SHOW ENGINE INNODB STATUS, não de folclore, lendo todo índice secundário através da primary key clusterizada: uma PK gorda infla todos os índices e um índice não-covering custa um lookup aleatório na PK por linha. Verifica a regra do leftmost prefix antes de acreditar que um índice se aplica, identifica conversões implícitas de charset/collation e de número vs string que desativam índices em silêncio, e separa o comportamento do 5.7 do 8.0 — merge de derived table, índices invisíveis e descendentes, histogramas — porque a correção muda.

Use quando

O que você recebe

Como usar

  1. Cole a query com a saída de EXPLAIN ANALYZE (ou EXPLAIN FORMAT=JSON) em {{query_and_explain}}.
  2. Preencha {{schema_and_indexes}} com o SHOW CREATE TABLE literal de cada tabela envolvida, mais contagem de linhas e cardinalidade dos índices — charset, collation e tipos são onde se escondem as conversões que matam índices.
  3. Coloque o trecho relevante de SHOW ENGINE INNODB STATUS, as waits do performance_schema ou a entrada do slow log (rows examined vs rows sent, lock time, tmp tables em disco) em {{innodb_status}}.
  4. Informe em {{mysql_version}} a versão e o fork (5.7, 8.0, Percona, MariaDB, RDS, Aurora) com o tamanho do buffer pool, e em {{workload_profile}} o QPS, mix leitura/escrita, duração das transações, nível de isolamento e topologia de replicação.
  5. Aplique o ALTER ou o rewrite devolvido e confirme pelos contadores handler_read_* e pelo limite de slow log indicado.

Tags: mysql, innodb, indexing, query-tuning, explain-analyze, covering-index, performance-schema

Preço: 10.00 BRL