Blog de Gonzalo

REPLICAS DE TABLAS EN MYSQL

Hace un tiempo escribí un post sobre los motores de almacenamiento en Mysql y hoy quiero commentar el motor de almacenamiento federated que permite tener replicas de tablas en mysql. Para saber si el motor de almacenamiento federated está disponible en vuestro MySQL tendréis que ejecutar la query: SHOW ENGINES y el resultado mostrará que motores de almacenamiento tenéis dispoible. Lo más seguro es que tengais que instalarlo ya que rara vez viene por defecto.
Estas réplicas pueden ser útiles si se quieren hacer consultas que van a consumir bastantes recursos de la base de datos y no se quiere interferir en su funcionamiento. Para poder usar MySql en otro servidor os aconsejo ver como realizar conexiones externes en mysql. Para evitar errores.Veamos un ejemplo de como crear una tabla federada:


CREATE TABLE usuario(
user_id INT(5) NOT NULL AUTO_INCREMENT,
nombre VARCHAR(20) NOT NULL DEFAULT,
apellido VARCHAR(20) NOT NULL DEFAULT,
email VARCHAR(50) NOT NULL DEFAULT,
telefono VARCHAR(11) NOT NULL DEFAULT,
PRIMARY KEY (user_id)
) ENGINE=MyISAM
La tabla federada se crearía en otra base de datos de otro servidor. Se podría crear en el mismo servidor pero mejor tenerla en otro servidor para que no afecte el rendimiento las consultas que se realicen sobre esta tabla.

CREATE TABLE usuario(
user_id INT(5) NOT NULL AUTO_INCREMENT,
nombre VARCHAR(20) NOT NULL DEFAULT,
apellido VARCHAR(20) NOT NULL DEFAULT,
email VARCHAR(50) NOT NULL DEFAULT,
telefono VARCHAR(11) NOT NULL DEFAULT,
)
ENGINE=FEDERATED
CONNECTION=?mysql://usuario@servidor:puerto/base_de_datos/prueba?;

La tabla principal y la tabla federada tienen la misma estructura, como es lógico, pero como se puede ver la tabla federada no necesita AUTO_INCREMENT ni índices, ya que no almacena datos, sólo funciona como una interfaz. El uso de tablas federadas es totalmente transparente para el usuario y así nos permite crear bases de datos secundarias sólo con las tablas necesarias y con posibilidad de escritura. Cuando se inserta o actualiza un registro en la tabla federada, ésta se conectará a la base de datos central, y le enviará la operación a realizar sobre la tabla real.
Espero que este post os haya servido. Yo creo que es bastante útil para no sobrecargar la base de datos sino se disponen de servidores balanceados.

Compartir en twitter