Pregunta

En la empresa en la que trabajo estamos discusión de los métodos para reducir la carga de lectura en nuestra base de datos primaria.

Una opción que ha sido sugerido es tener vivir una replicación de nuestra base de datos principal a un esclavo de la base de datos.Aplicaciones a continuación se lee desde el esclavo de la base de datos y escribir directamente en la base de datos principal.Así que...

  • Aplicación Lee Esclavo
  • Aplicación Escribe en Primaria
  • Primaria Actualizaciones Esclavo Automáticamente

¿Cuáles son los principales pros y contras de este método?

¿Fue útil?

Solución

Un par de contras:

  • 2 puntos de fallo
  • La lógica de la aplicación se tiene que tomar en cuenta el retraso entre la escritura y de la lectura, ya que no estará disponible inmediatamente de la base de datos secundaria

Una estrategia que he utilizado es el envío de la clave de comunicar los datos a una base de datos secundaria nocturna, de la normalización en el camino, por lo que el fornido las consultas se pueden ejecutar en la base de datos en lugar de bloqueo de las tablas y el robo de los recursos del servidor OLTP.Yo no estoy usando ningún formal de almacenamiento de datos o herramientas de replicación, sino para identificar los problemas de las consultas que Aceptar sin-to-the-minute de datos y crear estructuras de datos en el servidor secundario específicamente para esas consultas.

Definitivamente, hay pros para "replicar todo" enfoque:

  • Puede ejecutar cualquier consulta ad hoc en el secundario, ya que tiene todos tus datos
  • Si su servidor principal muere, puede volver a propósito de la secundaria rápidamente para tomar el relevo

Otros consejos

Estamos utilizando de una manera repeticiones, pero no desde la misma aplicación.Nuestras aplicaciones de lectura-escritura a la base de datos, los datos se sincronizan con el replca de la base de datos, y las herramientas de generación de informes son el uso de esta réplica.

No queremos que nuestra aplicación para leer de una base de datos diferente, por lo que en este escenario me gustaría sugerir el uso de grupos de archivos y creación de particiones en la base de datos master.El uso de grupos de archivos (especialmente en unidades diferentes) y la partición de archivos y los índices pueden ayudar en mucho el rendimiento.

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