sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo particionar Mysql en SERVIDORES MÚLTIPLES?

Con MySQL, la gente generalmente hace lo que se llama fragmentación basada en aplicaciones. .

En pocas palabras, tendrá la misma estructura de base de datos en varios servidores de bases de datos. Pero no contendrá los mismos datos.

Entonces, por ejemplo:

Users 1 - 10000: server A
Users 10001 - 20000: server B

La fragmentación (por supuesto) no es una técnica de copia de seguridad, está destinada a distribuir lecturas y escrituras en un clúster.

Las técnicas empleadas para fragmentar son MySQL-Proxy, por ejemplo. Esto no es nada que haya inventado HScale, es más o menos un simple script LUA que distribuye lecturas y escrituras a diferentes servidores back-end. Debería haber muchos ejemplos en MySQL forge.

Otra herramienta (basada en MySQL Proxy) es SpockProxy . Completamente adaptado a la fragmentación. También se deshicieron de Lua y trabajaron en varias cosas para que fuera más rápido que el proxy. Hasta ahora, solo probé SpockProxy, pero nunca lo ejecuté en producción.

Ahora, aparte de esos proxies, también puedes fragmentarte a ti 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 funciona. El siguiente obstáculo sería hacerlo más tolerante a la falta. Entonces, por ejemplo, server1 , server2 y server3 cada uno debe ser un grupo pequeño.

Y por último, pero no menos importante, otro enfoque interesante para particionar datos e índices entre servidores es el IDDB . No estoy seguro de si alguna vez publicaron su código, pero las publicaciones de su blog brindan excelentes detalles sobre lo que hace.

¡Déjame saber si esto ayuda!