YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

Portuguese, Brazilian subtitles

← PS 10-02 Parte 2

Get Embed Code
5 Languages

Showing Revision 4 created 09/17/2013 by Ananyr Fajardo.

  1. Certo. Neste Horário de Trabalho, tivemos uma série de questões sobre MySQL e PostgreSQL
  2. e por que você prefere Postgres ao invés de MySQL e por que outras pessoas preferem MySQL com frequência.
  3. Se você pudesse tratar um pouco disso, seria ótimo.
  4. Sim, sim. Começaremos com a primeira questão, que é por que eu prefiro Postgres ao invés de MySQL.
  5. Trata-se de uma resposta em duas partes.
  6. Em 2005, quando iniciamos o Reddit, eu estava basicamente na posição em que vocês estão agora,
  7. ou seja, aprendendo como funcionam aplicativos web.
  8. Estava tentando instalar todas essas coisas no meu computador, incluindo MySQL e Postgres,
  9. e MySQL não compilava no meu Mac, ao contrário do Postgres. -- Essa é uma boa razão.
  10. Quer dizer, para ser justo, revela muito sobre um projeto.
  11. Ou seja, se compila em meu Mac, poderia compilar em praticamente qualquer outro lugar
  12. porque, na época, OSX ainda era algo bem novo.
  13. Foi assim que começamos com Postgres.
  14. MySQL ainda era muito popular na época, muito mais popular que Postgres,
  15. mas tinha uma reputação de causar algumas perdas de dados.
  16. Essa pode ser a expressão adequada, algo inconsistente.
  17. No Postgres, a documentação era melhor, eles abriam mão de alguma funcionalidade em favor da estabilidade
  18. e da consistência e adesão ao tipo de padrão SQL.
  19. Algumas consultas desse tipo que fizemos no Reddit expandiram os limites dessas bases de dados
  20. rodaram muito, muito mais rápido em Postgres do que em MySQL, então me tornei fiel desde então.
  21. Hoje em dia, vendo ponto a ponto, são praticamente a mesma coisa.
  22. MySQL não é mais tão displiscente com seus dados
  23. e muita gente usa MySQL.
  24. Atualmente, dá para usar o que vocês preferirem.
  25. Acho que, talvez, usar aquele que compilar com mais facilidade no seu computador
  26. é uma razão perfeitamente aceitável para escolher atualmente.
  27. Também recebemos algumas questões sobre outros tipos de bases de dados
  28. por que bases de dados NoSQL eram populares, por que muitas empresas estão mudando para elas.
  29. Você mencionou que Facebook utiliza MySQL, eu acho,
  30. e recebemos algumas questões mencionando que eles também utilizavam NoSQL.
  31. OK, claro. NoSQL é basicamente uma resposta às dificuldades de desenvolver utilizando bases de dados SQL.
  32. Uma das dificuldades das bases de dados SQL é que você tem de definir suas tabelas previamente.
  33. Você deve saber quais serão seus comandos. Deve saber de que tipo serão.
  34. Quando se está programando na rede, uma das vantagens
  35. é que você não precisa pensar em tudo de antemão.
  36. Você pode fazer algo funcionar, colocar online, ver como os usuários reagem.
  37. Você pode de certa forma se apoiar nisso, adicionar novos elementos, eliminar outros, fazer o que quiser.
  38. O desafio é, quando você tem bases de dados e
    uma grande quantidade de dados,
  39. então você tem que, às vezes, inserir uma nova coluna ou um novo índice ou um monte de novos tipos de dados.
  40. Quando você tem uma base de dados ativa que tem milhares ou milhões de usuários
  41. isso pode ser realmente trabalhoso.
  42. Essas bases de dados NoSQL, geralmente, tentam resolver esse problema.
  43. Outra forma de descrevê-las seria como bases de dados não-esquemáticas.
  44. Essas bases de dados não possuem um esquema.
  45. Ou seja, elas não possuem uma descrição formal de colunas e tipos de dados, e isso é legal.
  46. No Reddit, nós criamos nosso próprio sistema não-esquemático adicional ao Postgres.
  47. Na verdade, fazemos isso novamente com o Hipmunk.
  48. É uma boa maneira de trabalhar.
  49. A dificuldade atual com muitas dessas bases de dados não-esquemáticas é que elas não são tão boas.
  50. Elas são tecnologia de ponta. Bases de dados são realmente difíceis.
  51. Elas têm problemas de estabilidade. Sua documentação é incompleta.
  52. Poucas delas são utilizadas ativamente no mercado,
  53. então não existe um bom suporte para que as pessoas possam se apoiar em algo assim.
  54. Na minha opinião, ainda é prudente, especialmente em se tratando de dados,
  55. especialmente se você se importa com seus dados, confiar am algo que já foi testado, que funciona
  56. que você sabe como avaliar.
  57. Todo mundo já trabalhou com Postgres e MySQL por um tempo considerável
  58. então sabem que funcionam muito, muito bem.
  59. Agora, com relação ao Facebook, eu não trabalho no Facebook, por isso não sou autoridade no assunto
  60. mas sei que eles usam bastante MySQL.
  61. Na verdade, eles aperfeiçoaram bastante o MySQL.
  62. Eles também escreveram seu próprio sistema NoSQL, chamado Cassandra
  63. que, pelo que sei, apesar de não ter certeza, eles já não usam mais.
  64. O Reddit, aliás, utiliza o Cassandra. Mas só começaram a usar depois que saí de lá.
  65. Não posso dizer com a consciência limpa que apoio essa decisão
  66. mas, aparentemente, tem funcionado para eles no uso corrente.
  67. Seu desempenho pode variar. Pessoalmente, estou contente com o Postgres.
  68. Sei como dimensioná-lo hoje em dia e é possível se virar com quaisquer tipos de comportamentos
  69. não-esquemáticos no Postgres, basta armazenar uma coluna que seja como um grande nódulo de JSON, por exemplo.
  70. Isso funciona muito bem na verdade, dependendo do tipo de problemas que você estiver resolvendo.
  71. De todo modo, esta foi uma longa resposta para uma questão simples, mas é minha opinião. -- Ótimo.