• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Postgres Chainsaw Massacre
 

Postgres Chainsaw Massacre

on

  • 230 views

Todas as emoções de um filme B sobre particionamento de tabelas no PostgreSQL. Tutorial realizado no PGBR2013

Todas as emoções de um filme B sobre particionamento de tabelas no PostgreSQL. Tutorial realizado no PGBR2013

Statistics

Views

Total Views
230
Views on SlideShare
230
Embed Views
0

Actions

Likes
1
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Postgres Chainsaw Massacre Postgres Chainsaw Massacre Presentation Transcript

    • The Postgres Chainsaw Massacre Todas as emo¸c˜oes de um filme B sobre particionamento de tabelas F´abio Telles Rodriguez Timbira - A empresa brasileira de PostgreSQL 17 de agosto de 2013 PGBR2013
    • Apresenta¸c˜ao F´abio Telles Rodrigues DBA Oracle e PostgreSQL +10 anos Colaborador Comunidade Brasileira de PostgreSQL Blog: http://savepoint.blog.br @telles
    • Timbira http://www.timbira.com.br A empresa Brasileira de PostgreSQL Consultoria / Desenvolvimento Planos de Suporte Parcerias com Empresas Desenvolvedoras de Software Treinamentos In-Company e On-Line Corre¸c˜ao de bugs no PostgreSQL garantida em contrato
    • Sobre esta apresenta¸c˜ao esta apresenta¸c˜ao est´a dispon´ıvel em: http://www.timbira.com.br/material esta apresenta¸c˜ao est´a sob licen¸ca Creative Commons Atribui¸c˜ao 3.0 Brasil: http://creativecommons.org/licenses/by/3.0/br
    • Sobre o que estamos falando?
    • Sobre o que estamos falando? Particionamento: ´E um mal necess´ario; Ningu´em quer fazˆe-lo se n˜ao for absolutamente necess´ario; Usa o princ´ıpio do ”dividir para conquistar”; Se suas tabelas n˜ao chegaram na casa dos 100GB, gaste seu tempo com algo mais divertido como criar um bilh˜ao de tabelas;
    • Mantra Nada ´e t˜ao ruim que n˜ao possa piorar
    • Vantagens Trabalhar com um volume de dados menor ´e mais r´apido; Tabelas menores tem maior chance de caber no buffer em mem´oria; Uma parti¸c˜ao mais acessada pode ficar em discos mais r´apidas; Rotinas de expurgo podem trocar um DELETE por um DROP TABLE ou TRUNCATE; Rotinas de manuten¸c˜ao como VACUUM, CLUSTER, REINDEX e ANALYZE podem rodar s´o em uma parti¸c˜ao;
    • Implementa¸c˜ao no PostgreSQL No PostgreSQL ´e implementado gra¸cas a uma gambiarra chamada ”Heran¸ca de tabelas”; Ningu´em levou a heran¸ca de tabelas muito `a s´erio no Postgres, exceto o seu criador, o Prof. Michael Stonebraker; Come¸cou a ser utilizado de verdade para particionamento a partir da vers˜ao 8.1; Pequenas e importantes melhorias surgiram em todas vers˜oes subsequentes; Estamos quase na vers˜ao 9.3 e ainda assim ´e uma gambiarra. Funciona, mas ´E UMA GAMBIARRA.
    • Modelagem Sistemas com grande volume de dados tem de ser criados j´a pensando no particionamento; A modelagem para o particionamento n˜ao ´e uma particularidade do PostgreSQL. Todos SGDBs tem a mesma limita¸c˜ao; O particionamento consiste apenas em quebrar as tabelas em peda¸cos menores; O grande problema ´e decidir qual o crit´erio para decidir quais registros ficam em cada peda¸co A.K.A. parti¸c˜ao; O problema central consiste em escolher um campo chave para o crit´erio de divis˜ao das tabelas; Este campo deve estar presente como parte da PK composta de todas tabelas particionadas;
    • M˜ao na massa Vamos criar nossa primeira tabela particionada com... schema APP usu´arios APP e CLIENT TABLESPACEs CLIENTE, VENDEDOR, PEDIDO, PEDIDO DETALHE GRANTs PK, FK, CHECK Parˆametros de storage
    • Hora de estripar tabelas!!!
    • Hora de estripar tabelas!!! Criar tabelas filhas, A.K.A parti¸c˜oes; Remover constraint NO INHERIT; Adicionar FKs; Adicionar parˆametros de storage; Alterar dono permiss˜oes na parti¸c˜ao; Criar gatilho; TESTAR!!!
    • Os Horrores INSERT retorna 0 registros inseridos; ´E poss´ıvel criar parti¸c˜oes com chaves que se sobreponham; Overhead criado pelo gatilho de INSERT; Problemas com chaves estrangeiras (FKs)
    • As vantagens ´E f´acil de automatizar; ´E bastante flex´ıvel; ´E poss´ıvel particionar tabelas j´a populadas;
    • Para os DBAs... Durma bem antes de um novo deploy. Tire uns dias de folga; N˜ao deixe de tomar cerveja com os amigos... Pratique exerc´ıcios f´ısicos regularmente!!!
    • Perguntas ? F´abio Telles Rodriguez (telles@timbira.com.br) http://www.timbira.com.br http://savepoint.blog.br/particionamento-de-tabelas-no-postgres-quando http://savepoint.blog.br/particionamento-de-tabelas-no-postgres-como http://savepoint.blog.br/particionamento-de-tabelas-no-postgres-detalhes http://savepoint.blog.br/particionamento-de-tabelas-no-postgres-automatizando