Í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]
Mi opinión personal sobre MariaDB y el FUD

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 aún 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 …
[Lea más]
Mi opinión personal sobre MariaDB y el FUD

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 aún 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 …
[Lea más]
Intentando resolver el Error 1053 al instalar MySQL 5.7.2

En esta entrada vamos a contar los distintos pasos para “intentar” solventar el error 1053 que he obtenido al instalar MySQL 5.7.2.

Así que, lo primero es saber quién es el que produce el error, y entonces llego a esta entrada, donde se confirman mis temores presagios: Windows!

Vaya, parece que los de #MySQL no son tan malos, y la culpa es de Microsoft.

Sigo investigando, y en esta entrada me proponen que haga una “limpieza del sistema”, e incluso me salta para descargar el software. Lo instalo, y efectivamente, tengo unos cuantos “problemillas”, pero claro, para continuar hay que pasar …

[Lea más]
Por qué deberías desactivar la Query Cache

La web está plagada de howtos para saber como configurar o medir el rendimiento de la Query Cache en MySQL. Incluso en este blog hay uno de esos documentos. En este post trataré de explicar, sin entrar mucho en los detalles técnicos, la razón por la cual el uso de la Query Cache está desaconsejado en la gran mayoría de los casos.

En primer lugar, ¿Qué es la Query Cache? El funcionamiento es muy simple. Cada vez que ejecutas una SELECT MySQL comprueba la lista de queries en su caché. Si está ahí, te muestra directamente el resultado sin ejecutarla. En caso de que no esté, ejecuta la query y guarda el resultado para usarlo más adelante en caso de que sea necesario. Visto así parece genial y puede parece que nos ayuda a reducir la carga de MySQL. Pero el problema es que la Query Cache se diseño en una época donde no había procesadores multi-core y lo habitual eran servidores con una CPU (o dos la gente con dinero). Por lo …

[Lea más]
Por qué deberías desactivar la Query Cache

La web está plagada de howtos para saber como configurar o medir el rendimiento de la Query Cache en MySQL. Incluso en este blog hay uno de esos documentos. En este post trataré de explicar, sin entrar mucho en los detalles técnicos, la razón por la cual el uso de la Query Cache está desaconsejado en la gran mayoría de los casos.

En primer lugar, ¿Qué es la Query Cache? El funcionamiento es muy simple. Cada vez que ejecutas una SELECT MySQL comprueba la lista de queries en su caché. Si está ahí, te muestra directamente el resultado sin ejecutarla. En caso de que no esté, ejecuta la query y guarda el resultado para usarlo más adelante en caso de que sea necesario. Visto así parece genial y puede parece que nos ayuda a reducir la carga de MySQL. Pero el problema es que la Query Cache se diseño en una época donde no había procesadores multi-core y lo habitual eran servidores con una CPU (o dos la gente con dinero). Por lo …

[Lea más]