Your SlideShare is downloading. ×
0
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Postgres Chainsaw Massacre
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Postgres Chainsaw Massacre

112

Published on

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

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
112
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 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
  • 2. Apresenta¸c˜ao F´abio Telles Rodrigues DBA Oracle e PostgreSQL +10 anos Colaborador Comunidade Brasileira de PostgreSQL Blog: http://savepoint.blog.br @telles
  • 3. 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
  • 4. 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
  • 5. Sobre o que estamos falando?
  • 6. 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;
  • 7. Mantra Nada ´e t˜ao ruim que n˜ao possa piorar
  • 8. 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;
  • 9. 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.
  • 10. 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;
  • 11. 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
  • 12. Hora de estripar tabelas!!!
  • 13. 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!!!
  • 14. 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)
  • 15. As vantagens ´E f´acil de automatizar; ´E bastante flex´ıvel; ´E poss´ıvel particionar tabelas j´a populadas;
  • 16. 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!!!
  • 17. 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

×