Pregunta

Sé que la partición horizontal ... puedes crear muchas tablas.

¿Cómo puedes hacer esto con múltiples servidores? Esto permitirá a Mysql escalar.

¿Crear tablas X en servidores X?

¿Le importa a alguien explicar o tiene un buen tutorial para principiantes (paso a paso) que le enseña cómo dividirse en varios servidores?

¿Fue útil?

Solución

Con MySQL, la gente generalmente hace lo que se llama basado en la aplicación sharding .

En pocas palabras, tendrá la misma base de datos estructura 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

Sharding (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 HScale haya inventado, es más o menos un simple script LUA que distribuye lecturas y escrituras en diferentes servidores backend. Debería haber muchos ejemplos en la forja de MySQL.

Otra herramienta (basada en el Proxy MySQL) es SpockProxy . Completamente adaptado a la fragmentación. 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 poderes, también puedes deshacerte de ti mismo. Requerido sería una tabla maestra, por ejemplo:

-------------------
| userA | server1 |
| userB | server2 |
| userC | server1 |
-------------------

Luego construya sus lecturas y escrituras en el servidor. No es muy bonita pero eso funciona. El siguiente obstáculo sería hacerla más flagrante. Por ejemplo, server1 , server2 y server3 cada uno debe ser un pequeño grupo.

Y por último, pero no menos importante, otro enfoque interesante de partición de datos e índices en servidores es Digg's IDDB . No estoy seguro si alguna vez publicaron su código, pero sus publicaciones en el blog brindan excelentes detalles sobre lo que hace.

¡Déjame saber si esto ayuda!

Otros consejos

Pero debe tener en cuenta que si por alguna razón desea llevar esta solución a la nube y hacerla multi arrendatario, la configuración anterior puede ser más desafiante. Piensa en esto -

  1. ha iniciado sesión en el sistema y la base de datos se selecciona (intercambio de base de datos) en función de la tabla de organización de usuarios
  2. Esta sería la nueva tabla maestra con la que estás hablando ahora con sus propios esclavos
  3. Pero el punto 2 anterior también necesita fragmentación ahora, ya que quiere asegurarse de que su escalamiento no se convierta en un cuello de botella.

Entonces, la pregunta es que probablemente tengas que pensar cómo puedes hacer esta fragmentación en una clase de env de esclavos mster donde los esclavos suelen leer y los maestros para escribir.

¡salud! Gary

Aquí está lo que está escrito en el anuncio de HSCALE 0.1:

  

En este momento necesitamos dividirnos   Mesas enormes pero más adelante queremos   Distribuir particiones sobre multiples.   Instancias del servidor MySQL para tener reales   escala horizontal hacia fuera. La parte más dificil   se trata de transacciones   donde tenemos que usar distribuido   transacciones (XA) o rechazar   transacciones que involucran particiones en   diferentes hosts ...

Eche un vistazo a este proyecto: http://sourceforge.net/projects/hscale/ tal vez sea adecuado para ti.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top