AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 101700
Accepted
AMH
AMH
Asked: 2015-05-17 09:25:14 +0800 CST2015-05-17 09:25:14 +0800 CST 2015-05-17 09:25:14 +0800 CST

Práticas recomendadas de balanceamento de carga e tráfego

  • 772

Estou prestes a projetar uma solução corporativa para um aplicativo de grande escala no qual um serviço do Windows, MVC e muitos outros projetos usarão um banco de dados, então estou pensando em balanceamento de carga e melhores práticas para organizar meu banco de dados.

Eu tenho duas opções:

  • use esquemas diferentes (eu sei que o esquema é muito parecido com uma pasta)
  • usar bancos de dados diferentes

Do ponto de vista do design do banco de dados, qual é o melhor e qual é a melhor prática?

database-design sql-server-2012
  • 1 1 respostas
  • 198 Views

1 respostas

  • Voted
  1. Best Answer
    Aaron Bertrand
    2015-05-18T14:15:59+08:002015-05-18T14:15:59+08:00

    Se os bancos de dados residirem no mesmo servidor, então, de uma perspectiva direta de desempenho, usar um único banco de dados dividido por esquema versus vários bancos de dados separados não será diferente. Não há "custo" para chamar o banco de dados A versus o banco de dados B (a menos que ambos estejam configurados para fechamento automático, um "recurso" que você deve evitar como uma praga).

    Eu normalmente defendo bancos de dados separados, por vários motivos:

    • Você parece estar separando coisas que são funcionalmente diferentes - não há vantagem real em conter dados para aplicativos separados logicamente no mesmo banco de dados, independentemente de você usar separação de esquema ou não - a menos que eles realmente compartilhem a mesma cópia dos dados.
    • Mais fácil dividir um banco de dados em um servidor separado se ele escalar mais rapidamente ou superar o servidor em que está. Mesmo com esquemas separados, será tedioso mover apenas os dados de um aplicativo desse banco de dados; se eles iniciarem em seu próprio banco de dados, é tão simples quanto fazer backup, restaurar no outro servidor e alterar a string de conexão para esse aplicativo. Se você tem um banco de dados e supera o tamanho do servidor, precisa mover tudo. E então novamente na próxima vez.
    • Mais fácil de gerenciar a recuperação separadamente - você pode querer usar recuperação completa e backups de log frequentes para seu controle de origem, mas não precisa de tanto rigor para o banco de dados que contém os personagens favoritos dos funcionários do Power Ranger. Você também pode evitar ter que restaurar todos os aplicativos para o mesmo ponto no tempo se tiver que reverter um dos bancos de dados por algum motivo.
    • Parece mais trabalhoso gerenciar isso, mas, na verdade, você pode fazer com que gerenciar 2 bancos de dados não seja realmente diferente de gerenciar 2.000 bancos de dados.

    Em uma vida anterior gerenciei um sistema com muitos bancos de dados; eles eram um por cliente com (em grande parte) tabelas/visualizações/procedimentos idênticos. Respondi a várias perguntas aqui com base em minha experiência e conhecimento por meio dessa arquitetura (incluindo algumas desvantagens a serem observadas na primeira resposta):

    • É uma boa ideia usar um banco de dados para mais de 50.000 lojas?
    • Lidando com o número crescente de inquilinos na arquitetura de banco de dados multilocatário
    • Automação de backups de grande número de banco de dados
    • Em que ponto um banco de dados por cliente se torna inviável?

    Ainda não ouvi ninguém argumentar com sucesso sobre o armazenamento de dados diferentes (aplicativos diferentes, clientes diferentes, etc.) no mesmo banco de dados. Acho que qualquer pessoa que optar por fazer isso está confiante de que seus dados nunca ultrapassarão esse servidor ou está se concentrando no objetivo de curto prazo de simplicidade e esforço mínimo (que pode ser bastante míope e mordê-lo a longo prazo) .

    • 2

relate perguntas

  • O que é SQL Server "Denali"? O que há de novo?

  • Qual é a diferença entre os tipos de dados MySQL VARCHAR e TEXT?

  • É melhor armazenar os valores calculados ou recalculá-los a pedido? [duplicado]

  • Armazenar vs calcular valores agregados

  • Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve