Descrição Geral
O livro, com cerca de 350 páginas, é composto por 13 capítulos. Além do texto, seu conteúdo inclui uma grande quantidade de códigos (principalmente consultas SQL) e várias tabelas. O nível de dificuldade de leitura é aproximadamente intermediário. Cada capítulo é reforçado por um breve resumo.
Resumo Breve
Quando li o livro, ainda era a versão 11. No entanto, o autor mantém o conteúdo atualizado—o primeiro capítulo geralmente aborda as últimas inovações do banco de dados. Após uma pequena introdução, começa o capítulo sobre transações e bloqueios—o que é esperado, já que toda operação no PostgreSQL é executada dentro de uma transação. São discutidas desde transações simples até as mais complexas e longas, utilizando SAVEPOINT. FOR SHARE e FOR UPDATE, níveis de isolamento das transações, otimização do armazenamento e outros tópicos também são abordados aqui.
Prosseguindo. Há um capítulo sobre a criação de índices, seus tipos (B‑tree, GIN, GiST, etc.), propósitos e aplicações. O capítulo é muito informativo e detalhado. Em seguida, há um breve capítulo sobre funções avançadas (agrupamento, ordenação, agregação, funções de janela)—também bastante informativo. Depois, há um capítulo sobre logs. Registros de consultas, configuração de logs e consultas do sistema são discutidos.
A seguir, vem um grande capítulo sobre otimização de consultas. Exemplos de otimização interna (realizada pelo otimizador antes de executar uma consulta) e métodos externos, onde o próprio desenvolvedor pode melhorar a consulta, são analisados. JOINs, particionamento e muito mais também são abordados aqui.
Depois disso, há um capítulo sobre procedimentos armazenados. Não sou particularmente favorável à delegação da lógica de negócios (mesmo que parcial) ao banco de dados, então não posso avaliar completamente esse capítulo, embora admita que há situações em que procedimentos armazenados podem ser apropriados.
O próximo capítulo trata de segurança. Inclui segurança de rede (pg_hba), direitos de acesso, delegação de papéis e remoção de usuários. Mostra como proteger os dados em diferentes níveis do sistema. Muito interessante e útil.
Em seguida, há vários capítulos sobre backup. O primeiro capítulo foca no trabalho com backups: criação e restauração. O segundo é sobre replicação. Ambos são muito informativos e interessantes.
O capítulo seguinte cobre as extensões do PostgreSQL. São descritas maneiras de instalar e trabalhar com extensões (contrib e de terceiros). Os módulos mais demandados que ampliam a funcionalidade do PostgreSQL são destacados.
Um dos últimos capítulos aborda a solução de problemas no PostgreSQL. Abordagens práticas para analisar a atividade (pg_stat_activity), identificar gargalos, ferramentas de log, trabalho com índices, memória e muito mais são discutidos. Por fim, o último capítulo é dedicado a ajudar na migração de seu banco de dados atual (por exemplo, MySQL) para o PostgreSQL.
Opinião
Um livro com exemplos práticos sobre um dos bancos de dados relacionais mais populares—PostgreSQL. O que eu definitivamente gostei no livro foi sua fluidez. Todos os capítulos são muito sequenciais e se complementam. Em alguns momentos, o livro pareceu um pouco desafiador, já que nunca mergulhei tão profundamente no PostgreSQL. No entanto, ele pode ser muito útil para quem deseja aprender os detalhes do banco de dados e, por exemplo, diferenciar índices GIN de GiST ou entender os modos de bloqueio como ACCESS SHARE, ROW SHARE, SHARE UPDATE EXCLUSIVE e outros. Por outro lado, o livro também cobre muitos tópicos populares, como transações, perfilamento, replicação e muito mais, que são usados diariamente, então o livro será, sem dúvida, muito útil para todos os desenvolvedores backend.