É recomendável usar o SQL Server como banco de dados para aplicativos escalonáveis ​​em massa?


10

Digamos que você esteja planejando criar um site da escala do Facebook (se eu vou citar o nome de um site, por que não o Facebook ?!). É recomendável usar o SQL Server como seu banco de dados para esses aplicativos?

Estou fazendo essa pergunta porque muitos colegas meus dizem que o SQL Server não deve ser usado para esses aplicativos. Eles preferem Oracle ou MySQL.


11
Eles usam o SQL Server para quaisquer aplicativos?
Jeffo

5
Não sei se o SQL server é a resposta, mas o Oracle não é melhor que o SQl Server.
Job

9
Primeiro, faça a si mesmo a pergunta - seus dados são relacionais ?
Henrik

2
Seu orçamento é massivamente escalável?
sasfrog

Respostas:


10

Sim , o SQL Server foi projetado para uso pesado, incluindo web. Ele pode ser colocado em várias configurações diferentes, como instâncias de memória acopladas a instâncias de cpu e uma SAN como armazenamento.

Peça conselhos ao seu integrador ou evangelista local da Microsoft.

Você pode encontrar muitos recursos sobre os recursos de dimensionamento do SQL Server na Web. Para começar, aqui está uma boa postagem de blog da equipe do SQL Server sobre o assunto: http://blogs.msdn.com/b/sqlcat/archive/ 2008/06/12 / sql-server-scale-out.aspx

Verifique como o Azure fornece o SQL Server na nuvem.


O SQL Azure não é apenas um 'SQL Server na nuvem', existem algumas diferenças. Mas é certamente uma opção viável para um site de grande porte e deve ser analisado.
Bart

Se você tiver dinheiro para jogar, ele aumentará.
David Neale

3

O SQL Server é a correspondência para qualquer outro banco de dados para esse tipo de trabalho, mas se você estiver pensando em fazer algo nesse tipo de escala, poderá trabalhar melhor com um sistema de armazenamento de tabelas em nuvem em vez de um banco de dados relacional convencional em termos de escalabilidade ou projetar um sistema heterogêneo que use armazenamento de tabela para o gerenciamento de dados em maior escala e um banco de dados para os locais onde você precisa dos recursos relacionais ou transacionais que eles oferecem.


Sim, resposta aceita. Votado. ;)
Henrik

3

Você não deve usar mecanismos de banco de dados tradicionais se precisar de recursos genuinamente escaláveis.

Bancos de dados tradicionais SQL fazer escala muito bem (você vai encontrar muitos exemplos de grandes sites usando MySQL, SQL Server ou Orcale), mas em um certo ponto, você vai bater o limite de escalabilidade. Exatamente quando isso acontecer, dependerá do nível de demanda, da complexidade dos requisitos de seu aplicativo, quanto você está disposto a gastar em servidores caros e a capacidade de otimizar o uso do banco de dados. Muitos sites nunca atingem esse limite, mas se você o fizer, será bastante doloroso e você enfrentará um grande desafio de engenharia para solucionar o problema.

Além desse ponto, você realmente precisa de um banco de dados NoSQL totalmente distribuído - por exemplo, algo como Cassandra , que foi de fato desenvolvido no Facebook para resolver alguns dos desafios de big data. Os bancos de dados NoSQL sacrificam explicitamente alguns dos recursos tradicionais do banco de dados SQL (geralmente em torno de transações, bloqueio e eventual consistência) para permitir uma escalabilidade horizontal efetivamente ilimitada.

No geral, meu conselho seria descobrir se você realmente precisa de escalabilidade massiva e escolher o caminho da tecnologia de acordo.


2

Sim. Acredito que o Microsoft Live.com seja construído sobre o SQL Server.

Sendo um fã do Linux / PostgreSQL, deixe-me dizer que você pode criar o Facebook com qualquer tecnologia de hoje, especialmente o SQL Server.

Se você não planeja ter tantos usuários quanto o Facebook (500 milhões), este site (rede de estouro de pilha) é construído sobre o .NET e o SQL Server.


2

Como ferramenta, você pode usar o SQL Server, mas lembre-se de sites como o Facebook não serem construídos apenas no topo de um banco de dados. Eles usam várias tecnologias para realizar a tarefa, confira os vídeos do Yahoo para descobrir como o Facebook gerencia o Logs sozinho e você perceberia que o DB é apenas uma parte da enorme arquitetura escalável. Em cerca de 10000 linhas de atualização por segundo, vi o SQL Server e o Oracle DB ficarem muito lentos depois de alguns dias em boas máquinas de configuração. Meu problema é que não consegui usar a computação distribuída. Portanto, é importante observar os sistemas de suporte que um banco de dados ou uma arquitetura escalável pode fornecer.


2

Não posso responder pelo MySQL (!), Mas tenho experiência em oferecer suporte a clientes que escolhemos usar o SQLServer ou Oracle. Até agora, descobrimos que geralmente não há diferença entre eles, mas quando as coisas chegam ao limite, a Oracle é de longe o melhor produto. Por exemplo, atualmente estamos desativando nosso sistema de missão crítica 24 horas por dia, 7 dias por semana, para limpar uma carga de registros, pois o SQLServer decidiu que levaria muitas horas para executar essa tarefa enquanto executava (em um ambiente espelhado). Tivemos problemas com o envio de logs de um grande conjunto de dados em um link WAN que nunca foi totalmente resolvido. Coisas assim sempre nos alegram em oferecer suporte aos clientes que executam o Oracle, onde nunca temos esses problemas.

Portanto, se você estiver procurando por um sistema escalável em massa, é provável que encontre esses problemas. O Oracle é chato, difícil e irritante, mas realmente funciona.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.