em PostgreSQL
você pode criar uma tabela com digamos 4 partições ( hash
) e localizar cada partição em servidores diferentes (servidores PostgreSQL remotos) e é chamado ( Foreign Data Wrapper
). Agora no MySQL eu ouvi que há um mecanismo federado que você pode conectar a um servidor remoto com ele, mas ele só funciona para uma tabela, não para suas partições. Eu sei que posso usar NDB
, mas quero ter vários servidores MySQL e gerenciar dados espalhados por mim mesmo (com base nas partições da tabela). Existe alguma solução no MySQL para fazer uma tabela ( Innodb
) e espalhar suas partições em vários servidores MySQL remotos?
relate perguntas
-
Existem ferramentas de benchmarking do MySQL? [fechado]
-
Onde posso encontrar o log lento do mysql?
-
Como posso otimizar um mysqldump de um banco de dados grande?
-
Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?
-
Como um grupo pode rastrear alterações no esquema do banco de dados?
O mecanismo de armazenamento Federated do MySQL não suporta particionamento. Você pode definir uma tabela cujo armazenamento reside em um MySQL Server diferente, mas não para uma tabela com partições. Além disso, o mecanismo de armazenamento Federated tem outras limitações, e eu não o recomendo.
PlanetScale é provavelmente a melhor solução para o que você descreve. Não é integrado ao MySQL. É uma empresa separada com seu próprio software que você usa junto com o MySQL. PlanetScale lida com muito do trabalho complexo necessário para manter dados particionados em vários servidores.
Outra solução possível é o ProxySQL . Eles têm um guia sobre como usar o ProxySQL para "sharding", que é o termo popular para dividir uma tabela em vários servidores, como você descreve. Veja https://proxysql.com/documentation/how-to-setup-proxysql-sharding/
Qualquer solução de dados distribuídos será muito mais difícil do que um único servidor de banco de dados. Você deve considerar cuidadosamente se esta é a solução certa, ou se você pode continuar usando um único servidor de banco de dados se otimizar a tabela e as consultas.