Julio 2nd, 2008

Claves foráneas con MySQL

Para empezar hay dos cosas que debemos intentar tener claras ¿Qué es un clúster y que prestaciones puede ofrecer? Un cluster agrupa uno o varios sectores de un disco, que se encuentran consecutivos o adyacentes  y que puede o debe ser utiliado para los siguientes objetivos:

  • Alta disponibilidad (High Availability)
  • Alto rendimiento (High Performance)
  • Equilibrio de la carga (Load Balancing)
  • Escalabilidad. (Scalability)

Un clúster en el caso de  MySQL es una tecnología que nos permitirá optimizar el rendimiento de nuestras bases de datos con un hardware no muy costoso y con unos pocos requerimientos de software. Un clúster MySQL integra dos cosas: un servidor MySQL y un motor de almacenamiento en memoria denominado NDB clúster que nos permite funcionar en un conjunto de pcs.

MySQL INNODBE

Según este pequeño esquema las tablas de la BBDD se integran usando el motor NDB y se podría acceder a los datos almacenados a través de cualquiera de sus nodos, estos nodos funcionarían como espejos unos de otros, lo que nos permite que la caída de uno de los nodos de datos no afecte al conjunto de ordenadores.

Los principales procesos que nos serán necesarios para hacer funcionar un clúster de MySQL son: MySQLD, NDB_MGMD, NDBD.

Claves foránes en MySQL

A partir de la versión 4.0, MySQL agregó InnoDB (un gran exito) a la lista de tipos de tablas soportadas por MySQL, para los que no saben demasiado sobre este tipo de tablas de almacenamiento de datos decir que MyISAM es el utilizado por defecto (aunque no permite claves foráneas y nos puede llevar algún quebradero de cabeza usar SQL sin saber esto) en la mayoría de los casos pero no por ello el que más se adapte a las necesidades de nuestra aplicación. Puesto que entre otras cosas no permite claves foráneas.

Mayo 12th, 2008

1005 - Can’t create table ‘xxx’ (errno: 150)

MySQl Logo

Solo hay dos posibles casos en los que nos podría fallar, con este error, nuestra creación de claves foráneas en una base de datos MySQL.

  • Si los dos campos (Nombre de campo y el nombre de campo foráneo) usan tipos de campo incompatibles.
  • Si tu usas “On Delete Set Null” pero el campo no lo permite, MySQL te devolverá el error.

Me decidi a crear este post, porque tuve el problemilla, hay mucha gente por muchos foros buscando resolverlo y no está detallada la información :D. Es una tontería que me hizo perder tiempo, espero que no se lo haga perder a otros.

Register your domain name and build your site at UNI.CC