were used replica nor neither log index cnf mysql replication alter-table indexing

used - replica mysql master slave



¿Puedes indexar tablas de forma diferente en Master and Slave(MySQL)? (3)

¿Es posible configurar diferentes índices en un esclavo de solo lectura, desde el maestro? Básicamente, parece que tiene sentido dado los diferentes requisitos de los dos sistemas, pero quiero asegurarme de que funcione y no cause ningún problema.


Claro, creo que incluso es una práctica común replicar tablas InnoDB en tablas MyISAM en el esclavo para poder agregar índices de texto completo.


Eso creo. Después de que la replicación esté funcionando, puede soltar los índices en el esclavo y crear los índices que desee y eso debería hacerlo. Dado que MySQL replica las declaraciones y no los datos (al menos de forma predeterminada), siempre que el SQL necesario para insertar o actualizar o seleccionar de la tabla no tenga que cambiar, no debe notarlo.

Ahora, obviamente, hay desventajas en esto. Si crea una clave única que no está en el maestro, podría obtener datos insertados en el maestro que no pueden insertarse en el esclavo. Si se realiza una actualización que utiliza un índice, puede ejecutarse rápidamente en el maestro pero provocar un escaneo de tabla en el esclavo (ya que no tiene el índice que sea útil).

Y si algún cambio de DDL ocurre alguna vez en el maestro (por ejemplo, para alterar un índice) eso se pasará al esclavo y el nuevo índice también se creará allí, aunque usted no lo desee.


Sin lugar a duda. Lo hago todo el tiempo. Problemas con los que me he encontrado

  • La referencia de índices a través de FORCE/USE/IGNORE INDEX en SELECTS error
  • Hacer referencia a los índices en las sentencias ALTER en el maestro puede romper la replicación
  • Agrega otro paso para promover que un esclavo sea el maestro en caso de emergencia
  • Si está utilizando la replicación basada en enunciados (la norma), y está jugando con índices UNIQUE , cualquier INSERT... ON DUPLICATE KEY , INSERT IGNORE o REPLACE causará desviación / divergencia de datos extremos
  • Diferencias de rendimiento (buenas y malas)