Em geral, há certos atributos do RDBMS ACID que se combinam para gerar características de desempenho em tempo polinomial quando você coloca dois ou mais computadores juntos para servir um banco de dados.
Existem várias tentativas para resolver este problema:
-
Otimize o banco de dados o máximo possível reduzindo a transacionalidade, reduzindo junções, etc.
-
Otimize um computador o máximo possível para servir o banco de dados - como otimizar o sistema operacional de suporte, otimizar os discos, etc.
-
Dimensionando verticalmente servindo o banco de dados com um único computador extraordinariamente poderoso.
-
Distribuindo o RDBMS fragmentando ou colocando diferentes tabelas em diferentes bancos de dados.
-
Usando um banco de dados verdadeiramente distribuído, ele descarta alguns dos atributos de um RDBMS ACID, mas oferece uma distribuição real e o desempenho do atendente. Por exemplo, Cassandra e outros. E os bancos de dados verdadeiramente distribuídos podem ser executados em hardware comum, porque o desempenho de um banco de dados distribuído é baseado principalmente em quantos nós existem, e não no desempenho de qualquer nó fornecido.
Existem limites rígidos para os primeiros quatro métodos. Não há limites para o quinto.
Como as necessidades de banco de dados se expandem muito mais rapidamente do que os ajustes e o hardware podem acompanhar, a solução inevitável será um banco de dados distribuído. Claro, muitas pessoas tentarão ajustar seus servidores de banco de dados, e então serão forçadas a atualizar para hardware massivo, mas isso é apenas uma lacuna, e quando isso deixar de ser suficiente, elas serão forçadas a mudar para um banco de dados distribuído. / p>