Diferenças práticas entre MySQL e PostgreSQL
Pergunta
Cite diferenças práticas que importam no dia a dia entre MySQL (InnoDB) e PostgreSQL.
Resposta esperada
Isolamento padrão: MySQL/InnoDB usa REPEATABLE READ; PostgreSQL usa READ COMMITTED — comportamento de leitura dentro de uma transação difere. DDL transacional: no Postgres, `ALTER TABLE` dentro de uma transação faz rollback junto; no MySQL, DDL faz commit implícito. Tipos: Postgres tem tipos ricos (arrays, JSONB indexável, tipos customizados, `ENUM` de verdade, ranges); MySQL é mais enxuto (JSON existe mas com menos ferramenta). Índices: Postgres tem GIN/GiST/BRIN/parciais/expressão; MySQL cobre menos casos. Concorrência de escrita: o MVCC do Postgres gera bloat e depende de VACUUM; o InnoDB usa undo logs. Recursos: `RETURNING`, CTEs recursivas maduras e índices parciais tendem a ser mais fortes no Postgres. Na prática, ambos servem bem a um CRUD; a escolha pesa quando você usa recursos avançados.
Por que perguntam isso
Pergunta pleno/sênior. Boa resposta dá 2-3 diferenças concretas que mordem no dia a dia (isolamento, DDL transacional, JSONB) em vez de 'os dois são SQL'.