Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual gerenciador de banco de dados para uma tabela 100Go?


Eu uso todos os bancos de dados que você mencionou. Para esta carga posso recomendar MySQL ou PostgreSQL porque já trabalhei com carga ainda maior no PostgreSQL. Mas o MySQL também fará o mesmo trabalho - talvez ainda melhor porque foi projetado desde o início para alta carga de inserção.

A solução no PostgreSQL com a qual trabalhei era usada para armazenar mensagens do sistema da rede de telecomunicações e conseguia coletar ~300 GB de dados por dia em uma máquina sem problemas. Mas você precisa de uma arquitetura HW adequada.

Você precisa de uma máquina com pelo menos 8 CPU, mas quanto mais é melhor e você precisa ter várias filas de inserção. Use o carregador em Java ou C ou golang com mais ameaças paralelas e faça inserções em massa de cada ameaça usando o comando COPY para aproximadamente 10.000 registros em um volume. Você deve usar o pool de conexões porque o PostgreSQL tem uma sobrecarga maior para abrir uma nova conexão.

Ele também irá ajudá-lo a distribuir dados por mais tablespaces cada tablespace em disco físico separado ou melhor em array de disco físico separado. Se possível, não use índices em dados brutos. Separe seus dados brutos dos resultados agregados.

Tínhamos outra solução usando extensão pl/proxy para PostgreSQL e várias máquinas físicas para dados brutos particionados por tempo. Este sistema foi capaz de coletar pelo menos 1 TB por dia, mas com a quantidade adequada de bancos de dados escravos ainda mais.

Mas você tem que entender que para realmente processar essa quantidade de dados você precisa de hardware adequado com configuração adequada. Não existe um banco de dados mágico que faça milagres em alguma configuração de "notebook"...

O InfluxDB é realmente um ótimo banco de dados de séries temporais e o usamos para monitoramento. Acredito que com CPUs suficientes e muita memória você poderá usá-lo também. Eu estimo que você precisará de no mínimo 64 GB de RAM porque as inserções são mais caras de memória. Assim, com mais filas de inserção, o banco de dados precisará de muito mais memória, pois armazena tudo na memória e faz índices automaticamente nas tags.