Cagadas memorables: El caso de la SELECT en un ndb

Al reiniciar un MySQL Cluster (ndb) para hacer un downgrade de kernel y ver todos los nodos operativos:

# /opt/mysql-cluster/bin/ndb_mgm -e show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)]     3 node(s)
id=11   @10.10.6.1  (mysql-5.5.29 ndb-7.2.10, Nodegroup: 0, Master)
id=12   @10.10.6.2  (mysql-5.5.29 ndb-7.2.10, Nodegroup: 0)
id=13   @10.10.6.3  (mysql-5.5.29 ndb-7.2.10, Nodegroup: 0)

[ndb_mgmd(MGM)] 2 node(s)
id=1    @10.10.6.5  (mysql-5.5.29 ndb-7.2.10)
id=4    @10.10.6.4  (mysql-5.5.29 ndb-7.2.10)

[mysqld(API)]   1 node(s)
id=54   @10.10.6.4  (mysql-5.5.29 ndb-7.2.10)

Pasé a comprobar la disponibilidad de los datos en el nodo SQL (el mysqld) con un count() en una tabla grande:

mysql> select count(*) tabla_gordota; …
[Lea más]
Percona 5,6 (MariaDB y MySQL) y Debian / Ubuntu

Original post: http://anothermysqldba.blogspot.com/2013/10/percona-56-mariadb-mysql-debianubuntu.html

Empiece a trabajar fácilmente con Percona 5.6 en Debian.
En este ejemplo se está ejecutando Linux Mint 15 .



Percona 5.6:

[Lea más]
Pasar de MySQL 5.6 a 5.6 Percona

Original post: http://anothermysqldba.blogspot.com/2013/10/moving-from-mysql-56-to-percona-56.html

Percona 5.6 fue lanzado recientemente (el día de hoy en el momento de este post). Así como simple ejemplo lo que todo se tarda en pasar a este "gota en el reemplazo?"

Oct 7 06:47 Percona-Server-56-debuginfo-5.6.13-rel61.0.461.rhel6.x86_64.rpm
Oct 7 06:47 Percona-Server-client-56-5.6.13-rel61.0.461.rhel6.x86_64.rpm
Oct 7 06:47 …

[Lea más]
Usando CAST en MySQL – MariaDB

CAST es una de esas funciones que incluye MySQL que están ahí, pero que poca gente conoce. El caso es que vamos a ver un ejemplo de cómo se utiliza, a raíz de una consulta de unión. La documentación de esta función la podéis consultar aquí: http://dev.mysql.com/doc/refman/5.0/es/cast-functions.html.

Seleccionamos una tabla y hacemos una consulta, seleccionamos una segunda table y hacemos otra consulta, y creamos una consulta de UNION de ambas tablas, sabiendo que aunque son distintas, los campos deben nombrarse igual (para que la unión sea correcta!).

Consulta de UNION

A priori, parece que todo va bien, pues incluso la consulta de UNION parece …

[Lea más]
Forzando índices en MySQL – MariaDB

Dentro de un proyecto de investigación en la Universidad de Córdoba, trabajamos con una base de datos en MySQL que tiene unos cuantos registros, en torno a 9 Gb, de los que el 95% se concentran en una sola tabla “datos“.

Forzando índices

En esta tabla se guardan datos con una frecuencia de 5 minutos, pero necesitamos calcular los datos agregados horarios. Para año y medio de datos, tenemos unos cuantos millones de datos, concreamente 57 millones .

Datos

Nos metemos en faena, pero comprobamos los índices disponibles:

[Lea más]
Índices en MySQL

Los índices, quizás, sean uno de los aspectos más desconcertantes de las bases de datos para los más inexpertos, pero a su vez, son muy importantes.

Quizás, para los que solo trabajais con Microsoft Access no sea un factor clave, ya que realmente es una de las debilidades, pero para MySQL y MariaDB los índices son muy importantes. En mi proyecto S·lar con la Universidad de Córdoba empecé con Access pensando que sería suficiente, pero la realidad es que acabé necesitando MySQL y toda su potencia. Cuando las tablas empezaron a rozar el Giga de tamaño, empecé a tener serios problemas de rendimiento, hasta que aprendí a usar los índices.

Consultas …

[Lea más]
InnoDB Log, que es y como configurarlo

Prácticamente todas las bases de datos tienen algo que generalmente se conoce como REDO LOG. MySQL también lo tiene (ib_logfile*) y hasta donde yo se toda base de datos con propiedades ACID lo tiene. La idea de este post es explicar cual es la utilidad de dicho log y que tamaño deberemos configurar para mejorar el rendimiento de nuestra base de datos.

¿Qué es este log?

Son dos ficheros (o más si tu lo configuras así) que funcionan de forma circular y secuencial. Imaginemos que tenemos A y B. InnoDB empieza escribiendo en A desde el inicio del fichero hasta el final. Una vez terminado con A comienza con B... y una vez terminado B vuelva a A reescribiendo los datos que en el hay. Por lo tanto, independientemente del número de ficheros que tengas configurado en innodb_log_files_in_group este actuará como uno solo. Por esa razón no se suele cambiar innodb_log_files_in_group pero si el tamaño total del …

[Lea más]
InnoDB Log, que es y como configurarlo

Prácticamente todas las bases de datos tienen algo que generalmente se conoce como REDO LOG. MySQL también lo tiene (ib_logfile*) y hasta donde yo se toda base de datos con propiedades ACID lo tiene. La idea de este post es explicar cual es la utilidad de dicho log y que tamaño deberemos configurar para mejorar el rendimiento de nuestra base de datos.

¿Qué es este log?

Son dos ficheros (o más si tu lo configuras así) que funcionan de forma circular y secuencial. Imaginemos que tenemos A y B. InnoDB empieza escribiendo en A desde el inicio del fichero hasta el final. Una vez terminado con A comienza con B... y una vez terminado B vuelva a A reescribiendo los datos que en el hay. Por lo tanto, independientemente del número de ficheros que tengas configurado en innodb_log_files_in_group este actuará como uno solo. Por esa razón no se suele cambiar innodb_log_files_in_group pero si el tamaño total del …

[Lea más]
Probando MariaDB

En vista del “éxito” que he tenido con mis dos instalaciones de MySQL, aquí para la 5.6 y aquí para la 5.7, me veo en la obligación de probar MariaDB.

Probando MariaDB 10

Está en estado alfa, es decir, en pleno desarrollo, pero para lo que pretendemos, que es hacer pruebas, cumplirá su función. Como la máquina virtual que tengo es un Windows XP, me descargo una versión 32 bits de downloads.mariadb.org/mariadb/10.0.4.

Instalando MariaDB

Tras la ventana inicial, aceptamos la licencia:

[Lea más]
Disclaimer típico: esto es una opinión mía, completamente personal y...

Disclaimer típico: esto es una opinión mía, completamente personal y no la opinión de la empresa para la que trabajo.

Últimamente mucha gente habla de MariaDB, generalmente por noticias estilo:

RedHat will switch from Oracle MySQL to MariaDB. Por cierto, desmentida por Red Hat, ya que ellos no han tomado ninguna decisión.

Google swaps out MySQL, moves to MariaDB. ¿Razones técnicas? Nadie lo sabe, por lo que posiblemente sea un "vamos a tocar los huevos a Oracle como ellos a nosotros con las patentes de Java":

Ahora, expliquemos un poco la historia de forma resumida.

  • Monty crea MySQL en 1996.
  • A partir de 3.23 InnoDB de Innobase se añade …
[Lea más]