SlideShare une entreprise Scribd logo
1  sur  12
Porém é necessário seguir uma série de boas
práticas para que os objetos realmente cumpram
os objetivos definidos pela aplicação e para que
não tenhamos futuros problemas na administração
do nosso banco de dados.
O Mongo é schemaless, ou seja, não tem um
padrão definido para armazenamento dos dados.
Isso nos proporciona grande flexibilidade na
modelagem dos dados que serão persistidos.
Algumas boas práticas
a serem seguidas.
https://s3.amazonaws.com/info-mongodb-com/MongoDB-Performance-
Best-Practices.pdf
Armazenar todos os dados de um registros
em um único documento
O MongoDb garante o ACID a nível de documento. Quando os dados estão armazenados em um único
documento ele pode ser recuperado rapidamente em apenas uma única operação. Isso é muito eficiente. Em
alguns casos, pode não ser muito prático armazenar os dados em apenas um único documento. Faça o trade-off
do que é realmente melhor para sua aplicação.
Evite grandes documentos
O tamanho máximo para documentos no MongoDB são de 16MB. Na prática os documentos são alguns
kilobytes ou menos. Podemos considerar os documentos mais como linhas de uma tabela do que propriamente
as tabelas. Em vez de manter listas de registros em único um documento, faça de um registro um documento.
Para grandes documentos de mídia, como vídeos ou imagens, considere usar GridFS, uma convenção aplicado
por todos os drivers que armazena automaticamente os dados binários através de documentos muito menores.
Evitar o crescimento ilimitado do documento
Quando um documento é atualizado no mecanismo de armazenamento MongoDB MMAPv1, os dados são
atualizados no local se houver espaço suficiente. Se o tamanho do documento é maior do que o espaço alocado,
então, o documento pode ter que ser re-escrito em uma nova localização. O processo de mover documentos e
atualizar os seus índices pode afetar o desempenho desnecessariamente. Para antecipar o crescimento futuro,
o atributo PowerOf2Sizes é ativado por padrão em cada coleção. Esta configuração arredonda tamanhos de
alocação para potências de 2. Essa configuração reduz as chances de aumento de I / O de disco caso seja
necessário algum tipo de armazenamento adicional.
Evite nomes de campo longos
Os nomes dos campos são repetidos em documentos e consomem espaço. Usar nomes de campos menores
consomem menos espaço, o que permite um maior número de documentos na memória RAM.
Tenha cuidado ao considerar
índices em campos de baixa
cardinalidade
Consultas sobre campos com baixa cardinalidade pode retornar grandes conjuntos de resultados, isso deve ser
evitado. Índices compostos podem incluir valores com baixa cardinalidade, mas o valor dos campos combinados
deve apresentar alta cardinalidade.
Remover índices que são
prefixos de outros índices.
Índices composto podem ser usado para consultas sobre campos principais dentro de um índice. Por exemplo,
um índice composto nos atributos primeiro nome e sobrenome, pode ser usado para filtrar consultas que
especificam apenas o sobrenome. Neste exemplo um índice adicional no campo sobrenome é desnecessário; o
índice composto é suficiente para consultas em ambos os campos.
Elimine índices desnecessários
Os índices fazem uso intenso de recursos da máquina: principalmente memória RAM. Outro ponto importante é
que quando os campos de um documento são atualizados os índices associados a ele também são atualizados, o
que pode ocasionar uma sobrecarga de I/O em disco.
Evite grandes
matrizes indexadas
Em vez de armazenar uma grande variedade de itens em um campo indexado, é mais eficiente para updates
armazenar grupos valores em vários campos.
FIM

Contenu connexe

Similaire à Schema designer MongoDB

Artigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidadeArtigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidadeAugusto Cezar Pinheiro
 
Tuning Banco de Dados
Tuning Banco de DadosTuning Banco de Dados
Tuning Banco de DadosFelipeCaiuby
 
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo SummitAmazon Web Services
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasCaio Lima
 
TechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-Terabyte
TechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-TerabyteTechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-Terabyte
TechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-TerabyteFabrício Catae
 
Curso de J2ME - Parte 04 - Otimização
Curso de J2ME - Parte 04 - OtimizaçãoCurso de J2ME - Parte 04 - Otimização
Curso de J2ME - Parte 04 - OtimizaçãoLeonardo Melo Santos
 
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon AuroraRaising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon AuroraAmazon Web Services LATAM
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Explorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraExplorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraAmazon Web Services LATAM
 
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MERRodrigo Kiyoshi Saito
 
Essbase Series - Backup
Essbase Series - BackupEssbase Series - Backup
Essbase Series - BackupCaio Lima
 
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricModernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricDenodo
 
Apresentação new sql
Apresentação new sqlApresentação new sql
Apresentação new sqlw_barros
 

Similaire à Schema designer MongoDB (20)

mongodb.pdf
mongodb.pdfmongodb.pdf
mongodb.pdf
 
Artigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidadeArtigo sobre redes san e armazenamento em grande capacidade
Artigo sobre redes san e armazenamento em grande capacidade
 
Tuning Banco de Dados
Tuning Banco de DadosTuning Banco de Dados
Tuning Banco de Dados
 
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo SummitSessão Avançada: Amazon Aurora -  DAT302 - Sao Paulo Summit
Sessão Avançada: Amazon Aurora - DAT302 - Sao Paulo Summit
 
ODI SERIES - Melhores Práticas
ODI SERIES - Melhores PráticasODI SERIES - Melhores Práticas
ODI SERIES - Melhores Práticas
 
MySQL - visão geral
MySQL - visão geralMySQL - visão geral
MySQL - visão geral
 
TechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-Terabyte
TechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-TerabyteTechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-Terabyte
TechEd 2009: Planejamento e Operação de Ambientes SharePoint Multi-Terabyte
 
Curso de J2ME - Parte 04 - Otimização
Curso de J2ME - Parte 04 - OtimizaçãoCurso de J2ME - Parte 04 - Otimização
Curso de J2ME - Parte 04 - Otimização
 
DB2 bufferpool Pagefixing por Alvaro Salla
DB2 bufferpool Pagefixing  por Alvaro SallaDB2 bufferpool Pagefixing  por Alvaro Salla
DB2 bufferpool Pagefixing por Alvaro Salla
 
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon AuroraRaising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
Raising the bar #2 - Explorando o poder do banco de dados com Amazon Aurora
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Explorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon AuroraExplorando o poder do banco de dados com Amazon Aurora
Explorando o poder do banco de dados com Amazon Aurora
 
NoSql e NewSql
NoSql e NewSqlNoSql e NewSql
NoSql e NewSql
 
Texto complementar
Texto complementarTexto complementar
Texto complementar
 
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
2019-2 - BD I - Aula 02 - Camadas de aplicação a Banco de Dados e Introd MER
 
Essbase Series - Backup
Essbase Series - BackupEssbase Series - Backup
Essbase Series - Backup
 
AWS Database Day - Português
AWS Database Day - PortuguêsAWS Database Day - Português
AWS Database Day - Português
 
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data FabricModernizando o papel do Data Lake em uma arquitetura de Data Fabric
Modernizando o papel do Data Lake em uma arquitetura de Data Fabric
 
Apresentação new sql
Apresentação new sqlApresentação new sql
Apresentação new sql
 
Bancos de dados NoSQL
Bancos de dados NoSQLBancos de dados NoSQL
Bancos de dados NoSQL
 

Schema designer MongoDB

  • 1.
  • 2. Porém é necessário seguir uma série de boas práticas para que os objetos realmente cumpram os objetivos definidos pela aplicação e para que não tenhamos futuros problemas na administração do nosso banco de dados. O Mongo é schemaless, ou seja, não tem um padrão definido para armazenamento dos dados. Isso nos proporciona grande flexibilidade na modelagem dos dados que serão persistidos.
  • 3. Algumas boas práticas a serem seguidas. https://s3.amazonaws.com/info-mongodb-com/MongoDB-Performance- Best-Practices.pdf
  • 4. Armazenar todos os dados de um registros em um único documento O MongoDb garante o ACID a nível de documento. Quando os dados estão armazenados em um único documento ele pode ser recuperado rapidamente em apenas uma única operação. Isso é muito eficiente. Em alguns casos, pode não ser muito prático armazenar os dados em apenas um único documento. Faça o trade-off do que é realmente melhor para sua aplicação.
  • 5. Evite grandes documentos O tamanho máximo para documentos no MongoDB são de 16MB. Na prática os documentos são alguns kilobytes ou menos. Podemos considerar os documentos mais como linhas de uma tabela do que propriamente as tabelas. Em vez de manter listas de registros em único um documento, faça de um registro um documento. Para grandes documentos de mídia, como vídeos ou imagens, considere usar GridFS, uma convenção aplicado por todos os drivers que armazena automaticamente os dados binários através de documentos muito menores.
  • 6. Evitar o crescimento ilimitado do documento Quando um documento é atualizado no mecanismo de armazenamento MongoDB MMAPv1, os dados são atualizados no local se houver espaço suficiente. Se o tamanho do documento é maior do que o espaço alocado, então, o documento pode ter que ser re-escrito em uma nova localização. O processo de mover documentos e atualizar os seus índices pode afetar o desempenho desnecessariamente. Para antecipar o crescimento futuro, o atributo PowerOf2Sizes é ativado por padrão em cada coleção. Esta configuração arredonda tamanhos de alocação para potências de 2. Essa configuração reduz as chances de aumento de I / O de disco caso seja necessário algum tipo de armazenamento adicional.
  • 7. Evite nomes de campo longos Os nomes dos campos são repetidos em documentos e consomem espaço. Usar nomes de campos menores consomem menos espaço, o que permite um maior número de documentos na memória RAM.
  • 8. Tenha cuidado ao considerar índices em campos de baixa cardinalidade Consultas sobre campos com baixa cardinalidade pode retornar grandes conjuntos de resultados, isso deve ser evitado. Índices compostos podem incluir valores com baixa cardinalidade, mas o valor dos campos combinados deve apresentar alta cardinalidade.
  • 9. Remover índices que são prefixos de outros índices. Índices composto podem ser usado para consultas sobre campos principais dentro de um índice. Por exemplo, um índice composto nos atributos primeiro nome e sobrenome, pode ser usado para filtrar consultas que especificam apenas o sobrenome. Neste exemplo um índice adicional no campo sobrenome é desnecessário; o índice composto é suficiente para consultas em ambos os campos.
  • 10. Elimine índices desnecessários Os índices fazem uso intenso de recursos da máquina: principalmente memória RAM. Outro ponto importante é que quando os campos de um documento são atualizados os índices associados a ele também são atualizados, o que pode ocasionar uma sobrecarga de I/O em disco.
  • 11. Evite grandes matrizes indexadas Em vez de armazenar uma grande variedade de itens em um campo indexado, é mais eficiente para updates armazenar grupos valores em vários campos.
  • 12. FIM