No processo de desenvolvimento dos negócios, o volume de dados necessários e as operações com eles aumentam. Em um determinado momento, um servidor não consegue mais lidar com a carga, e então é necessário dimensionar o banco de dados. Como esse processo é realizado?
Dimensionamento vertical
O dimensionamento vertical envolve o aumento da capacidade do servidor. A principal vantagem do método é sua simplicidade. Não há necessidade de reescrever o código ao adicionar capacidade, e é muito mais fácil gerenciar um servidor grande do que um sistema inteiro. Essa também é a principal desvantagem: o dimensionamento dos recursos de um servidor tem limitações de hardware bastante específicas. Também vale a pena considerar o custo dessa solução: um servidor com vários recursos computacionais, na maioria dos casos, é mais caro do que vários servidores menos potentes que oferecem o mesmo desempenho no total.
Escalonamento horizontal
O escalonamento horizontal significa aumentar o desempenho dividindo os dados em vários servidores. Esse método envolve aumentar o desempenho sem diminuir a tolerância a falhas. Há três tipos principais de escalonamento horizontal.
Replicação
Esse termo implica a cópia de dados entre servidores. Ao usar esse método, há dois tipos de servidores: mestre e escravo. O mestre é usado para gravar ou alterar informações, e os escravos são usados para copiar informações do mestre e lê-las. Na maioria das vezes, são usados um mestre e vários escravos, pois geralmente há mais solicitações de leitura do que de alteração. A principal vantagem da replicação é um grande número de cópias de dados. Portanto, se até mesmo o servidor mestre falhar, qualquer outro servidor poderá substituí-lo. No entanto, a replicação não é muito conveniente como mecanismo de dimensionamento. O motivo para isso é a dessincronização e os atrasos na transferência de dados entre os servidores. A replicação é mais frequentemente usada como um meio de fornecer tolerância a falhas em conjunto com outros métodos de dimensionamento.
Particionamento/Seccionamento
Esse método de dimensionamento envolve o particionamento de dados em partes com base em algum recurso. Por exemplo, uma tabela pode ser particionada em duas com base na paridade. O motivo para usar o particionamento é melhorar o desempenho. Isso ocorre porque a pesquisa não é realizada em toda a tabela, mas apenas em uma parte dela. Outra vantagem desse método é a capacidade de excluir rapidamente um fragmento irrelevante da tabela.
Sharding/sharding/segmentação
Sharding é um princípio de design de banco de dados no qual partes de uma tabela são armazenadas separadamente, em diferentes servidores físicos. A fragmentação é a solução mais adequada para operações em grande escala, especialmente quando combinada com a replicação. Mas vale a pena observar que é bastante difícil de organizar, pois a comunicação entre servidores deve ser levada em conta.
Resumo
Devido à criação de sistemas corporativos de alta carga, em que o volume de informações e de usuários cresce a cada dia, a capacidade de dimensionar o sistema é um dos principais fatores na sua seleção. Afinal, se cada estágio do desenvolvimento dos negócios for acompanhado por um longo e complexo processo de otimização do suporte de informações, vale a pena pensar na exatidão da escolha do sistema de informações.