Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

chacal009

Banco de Dados

Recommended Posts

Salve, Salve!

 

Estou com uma dúvida e gostaria de esclarecê-la:

Um site de grande movimentação, como o americanas.com por exemplo, que é um e-commerce, que gera uma transação entre sistema x banco de dados enorme, pegando este exemplo e imaginando um fluxo enorme de dados(Consultas, Modificações) nos registros do banco de dados, este sendo SQL Server; seria melhor por exemplo eu ao invés de criar um único banco com tabelas (gerais, produtos, clientes, pedidos) e sim criar um banco gerais, outro banco produtos, outro clientes, outro pedidos fazendo desta forma uma divisão de um banco de dados para outros bancos de dados.

 

Isso traria algum benefício em termos de performance do e-commerce? diminuaria a sobrecarga do banco de dados ew até do servidor? ou continuaria na mesma, ou até mesmo pioraria. Vamos pensar em um sistema com fluxo grande de transações diárias; pensemos também em termos de manutenção futura do banco de dados, dividindo-se dessa forma facilitaria a manutenção também?

 

Uma dúvida também, quando faço uma requisição por exemplo de um registro na tabela A; o servidor carregaria todo o banco de dados, procuraria pela tabela A dentre as outras tabelas, e depois iria para a tabela A e procuraria pelo registro, ou ele apenas e simplesmente vai direto para a tabela A sem ter essa sobrecarga?

 

Outra questão, seria melhor colocar o Banco de dados em um servidor e o sistema em outros, ou seja, um servidor apenas para o banco de dados, e um outro apenas para o sistema e demais aplicações?

 

Sou leigo nesse assunto, gostaria dessa ajuda de vocês.

Obrigado, desde já agradeço.

 

Flows!

Compartilhar este post


Link para o post
Compartilhar em outros sites

chacal009, vou dar minha opiniao pessoal e acho que a galera tb pode compartilhar ateh msm os seus ambientes para discutirmos e temos algum outro parametro.

 

Estou com uma dúvida e gostaria de esclarecê-la:

Um site de grande movimentação, como o americanas.com por exemplo, que é um e-commerce, que gera uma transação entre sistema x banco de dados enorme, pegando este exemplo e imaginando um fluxo enorme de dados(Consultas, Modificações) nos registros do banco de dados, este sendo SQL Server; seria melhor por exemplo eu ao invés de criar um único banco com tabelas (gerais, produtos, clientes, pedidos) e sim criar um banco gerais, outro banco produtos, outro clientes, outro pedidos fazendo desta forma uma divisão de um banco de dados para outros bancos de dados.

 

Isso depende e muito da aplicacao e da qtde de transacoes. eh feito varios estudos de impacto sobre uma base. Conta-se muito hardware tambem em aplicacoes de e-commerce. Uma boa infra-estrutura com ctza faz parte do fluxo de trabalho.

 

Isso traria algum benefício em termos de performance do e-commerce? diminuaria a sobrecarga do banco de dados ew até do servidor? ou continuaria na mesma, ou até mesmo pioraria. Vamos pensar em um sistema com fluxo grande de transações diárias; pensemos também em termos de manutenção futura do banco de dados, dividindo-se dessa forma facilitaria a manutenção também?

 

O que muitos provedores trabalham eh com "clusterizacao" (ambientes em clusters), replicacao de dados, um hardware "fera" dentre outras coisas....

No caso de um e-commerce deste porte, fica dificil imaginarmos em como seria a estrutura, se dividir em dois ou mais bancos iria piorar ou melhorar... isso depende de muita coisa.

 

Uma dúvida também, quando faço uma requisição por exemplo de um registro na tabela A; o servidor carregaria todo o banco de dados, procuraria pela tabela A dentre as outras tabelas, e depois iria para a tabela A e procuraria pelo registro, ou ele apenas e simplesmente vai direto para a tabela A sem ter essa sobrecarga?

 

Isso eh mais facil de responder.

Cada item do banco de dados tem um ID, e eh atraves deste id que o SQL vai procurar o objeto. Achando o objeto ele vai verificar a requisicao (select, delete, update, insert, etc...) dependendo da requisicao ele vai ou nao direto

no registro. Pq depende da requisicao? Qdo você faz um select * from tabela, ele nao tem referencia de campo, ou seja, nem de indice, estatistica, nada... ai neste caso sua consulta pode ficar lenta, mas se você pegar este select e retornar um campo que contenha um indice (descente) o retorno eh com ctza mais rapido.

 

Outra questão, seria melhor colocar o Banco de dados em um servidor e o sistema em outros, ou seja, um servidor apenas para o banco de dados, e um outro apenas para o sistema e demais aplicações?

 

Eu acho que seria bom, se o custo permitir, separar aplicacao do banco. você nao vai preocisar dividir memoria, leitura de disco, banda de net, nem qq outro hardware entre aplicacao e banco de dados.

 

Sou leigo nesse assunto, gostaria dessa ajuda de vocês.

Obrigado, desde já agradeço.

 

O fórum eh para isso... troca de conhecimentos. precisando eh soh postar, mas nao eskeca de dar uma procurada no forum para ver se a duvida jah nao foi respondida :P

 

Abçs e boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.