MySql: Pruebas de rendimiento y parametrización usando mysqlslap

A MySql le acompaña mysqlslap (creo que a partir de 5.x), un ejecutable que permite hacer ejecuciones de scripts masivas para simular carga la carga de trabajo en el servidor generada por clientes mysql. Le podemos pasar un script de preparación y un script de consultas DML sobre el que medir tiempos. Con esto lo interesante también es que podemos obtener el tiempo mínimo, máximo y medio con distintas concurrencias.

Podemos empezar con un ejemplo básico con script de creación y de carga...

 

Licenciamiento, confusiones y aclaraciones sobre MySQL, Oracle e InnoDB

Licenciamiento de MySQLEstos días ha habido bastante follón con los cambios en la tabla de ediciones de MySQL, sobretodo en cuanto a las ediciones de pago.

Por lo que yo entiendo el principal cambio es que la edición más económica, la Classic Edition, deja de estar disponible para su adquisición directa, y queda sólo como la opción de licenciamiento comercial más económica de MySQL como base embebida, disponible sólo para ISVs (Independent Software Vendors), OEMs (Original Equipment Manufacturers) y VARs (Value Added Resellers)...

 

SSIS: Solución a dos errores sin motivo aparente cuando insertamos datos en MySql

SSIS: Solución a dos errores sin motivo aparente cuando insertamos datos en MySqlPor la razón que sea puede que tengamos que desarrollar un paquete de Microsoft Integration Services que nos mueva datos de cualquier origen a una tabla que se encuentra en una base de datos MySQL.
La primera intención será hacerlo mediante una ADO.NET Destination y el provider de MySQL para la conexión. Si lo hacemos así para insertar los datos directamente, al crear el destino, seleccionar la conexión y luego seleccionamos la tabla aparecerá un error como el siguiente al comprobarlo todo con la vista previa o al intentar hacer las asignaciones.

Este error se debe a al modo de compatibilidad sql ansi de la base de datos mysql donde intentamos cargar los datos. Para solventarlo debemos conectarnos al servidor de MySQL y cambiar la compatibilidad ansi de sql de la base de datos*...

 

MySql: Slow queries, controlando las consultas a optimizar

En MySQL existe un parámetro que habilita el registro de las consultas que tardan mas de x segundos en ejecutarse, las llamadas Slow Queries. Básicamente lo que hace es meterlas en un fichero de log para luego consultarlo con mysqldumpslow. Este mecanismo nos puede ser útil para mejorar el rendimiento global de la base de datos si reducimos el valor de forma progresiva para los tiempos de ejecución "no admitidos" antes de declarar una consulta como "lenta" o slow query...
 

Mysql: Checklist diario

Mysql: Checklist diario

 

A continuación dejo un pequeño post de como montar un sistema automático de notificación via mail que nos indique cual es el estado de nuestra base de datos. Por ejemplo lo podemos programar un poquito antes de empezar nuestra jornada laboral y antes de irnos o mientras estamos de vacaciones (jaja...). Este ejemplo es sobre un Mysql 5.X corriendo sobre Debian. Pasos que sigue:...

 

 

Defragmentar tablas para optimizar MySQL

Con MySQL, cuando se eliminan registros de una tabla, el espacio no se reasigna automáticamente. El problema de esto es que si en una tabla se realizan operaciones de DELETE, el espacio físico de la tabla va quedando cada vez más fragmentado. En MySQL, disponemos del comando OPTIMIZE TABLE para poder realizar sobre cualquier tabla una optimización que, entre otras cosas, realiza una defragmentación automática de la tabla..

Mejora de rendimiento de MySQL ajustando algunos parámetros

Estado actual de una base de datos MySQL con phpmyadminMySQL, al igual que la mayoría de gestores de bases de datos, permite modificar fácilmente sus parámetros que controlan tamaños de memoria dedicados a determinadas tareas, utilización de recursos, límites de concurrencia, etc.

Ajustando adecuadamente estos parámetros se pueden obtener muchas mejoras de rendimiento, sobretodo si el servidor/es de la base de datos no va sobrado de recursos, y si por la parte de optimización SQL no se puede mejorar mucho más.

Twitter también migrará de MySQL a Cassandra DB

 Cassandra es una base de datos open source distribuida, es uno de los proyectos destacados de la Apache Software Foundation y parece que está pegando fuerte. Al ser distribuida permite ofrecer alta disponibilidad, tolerancia a fallos y, sobretodo, una gran escalabilidad sin pérdida de rendimiento.

Ya la estaban utilizando empresas que manejan grandes cantidades de datos, como Rackspace, Digg, o Facebook, y la lista se va ampliando.

Las últimas noticias, que vienen desde  una entrevista del blog MyNoSQL a Ryan King son que Twitter se está planteando migrar sus clusters de servidores MySQL a Cassandra DB. 

Esta es una presentación del producto, que se puede consultar en la misma web del proyecto Cassandra

Acceder a MySql desde Sql Server 2008

Se puede dar el caso que necesitemos acceder a MySql desde Sql Server 2008. Para hacerlo podemos crear un servidor vinculado que use una conexión odbc. Como hacerlo paso a paso:

1. Descargar el cliente ODBC de Mysql para la plataforma del sevidor sql. Lo podeis hacer aquí.

2. Instalarlo (siguiente, siguiente, siguiente) y configurar un DSN de sistema. Para ello en el Administrador de orígenes de datos ODBC, en la pestaña DSN de sistema pulsamos Agregar y seleccionamos MySQL ODBC 5.1 driver. Acepatemos y aparece un formulario como el siguiente. Lo rellenaremos y probaremos pulsando Test para comprobar que funciona.

 

3. Añadir el servidor vinculado en la base de datos. Para ello nos conectamos a la base de datos y en el árbol de objetos vamos a  Objetos de servidor, pulsamos botón derecho en Servidores vinculados y clickamos en Nuevo Servidor Vinculado, rellenamos los datos y ya lo tenemos.