Tecnologias/02 - Bancos de Dados/01 - Relacionais/02 - MySQL1 minmoc
MOC MySQL
02 - MySQL
Uma camada SQL sobre um motor de armazenamento. Entender o InnoDB é entender o MySQL — e o InnoDB tem uma decisão que o diferencia de todos os outros: a tabela é o índice da chave primária.
Definições e explicações
- 1. MySQL — a tese, o índice clusterizado, o modelo LTS/Innovation
- 2. InnoDB por Dentro — páginas, B+ tree, buffer pool, change buffer, row formats
- 3. Redo, Undo e Locks — durabilidade, MVCC por undo, gap locks e deadlock
- 4. Índices e o Otimizador — covering index, ICP, histogramas,
EXPLAIN ANALYZE - 5. Replicação e Alta Disponibilidade — binlog, GTID, replicação paralela, InnoDB Cluster
- 6. DDL Online e Operação —
INSTANT/INPLACE, gh-ost,sql_mode, performance_schema
A ideia que atravessa a seção
No InnoDB, tudo é índice. A tabela é a árvore B+ da PK; os índices secundários apontam para a PK, não para um endereço físico.
Disso saem consequências que não existem no Postgres:
- busca por PK é a operação mais rápida possível (a linha está na folha do índice);
- índice secundário custa dois percursos de árvore quando precisa de colunas extras;
- a PK é copiada em todos os índices secundários → PK curta importa;
- PK aleatória fragmenta a árvore na escrita → PK ordenável importa.
Se você entender 2. InnoDB por Dentro, praticamente todo conselho de performance de MySQL passa a ser dedutível em vez de decorado.
Parte de Bancos Relacionais · dev.mysql.com/doc