Con MySQL, la gente generalmente hace lo que se llama aplicación basada sharding.
En pocas palabras, tendrá la misma base de datos estructura en múltiples servidores de bases de datos. Pero no contendrá la misma información.
Así, por ejemplo:
Users 1 - 10000: server A
Users 10001 - 20000: server B
Sharding (por supuesto) no es una técnica de copia de seguridad, que está destinado a distribuir lee y escribe en un clúster.
Las técnicas empleadas para shard son el MySQL-Proxy, por ejemplo. Esto no es nada de lo que HScale inventó, es más o menos una simple secuencia de comandos LUA que distribuye lecturas y escrituras en diferentes servidores backend. Debería haber muchos ejemplos en MySQL forge.
Otra herramienta (basada en MySQL Proxy) es SpockProxy. Completamente adaptado a sharding. También se libraron de Lua, y trabajaron en varias cosas para hacerlo más rápido que el proxy. Hasta ahora, solo he probado SpockProxy, pero nunca lo ejecuté en producción.
Ahora, aparte de esos proxies, también puede fragmentarse usted mismo. Se requiere una tabla maestra, por ejemplo:
-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------
Luego construya sus lecturas y escrituras hacia el servidor. No es muy bonito, pero eso funciona. El siguiente obstáculo sería hacer que tolatera más bien. Entonces, por ejemplo, , server2
y server3
cada uno debe ser un pequeño grupo.
Y por último pero no menos importante, otro enfoque interesante para los datos y los índices de particiones en todos los servidores es IDDB de Digg.No estoy seguro de si alguna vez lanzaron su código, pero sus publicaciones de blog brindan grandes detalles sobre lo que hace.
¡Avíseme si esto es útil!
Sería bueno si las personas dejaran un comentario cuando presionen "cerrar". En mi humilde opinión, esta pregunta es más que adecuada para Stackoverlow. – Till