innodbchecksum: Uso de ibdata

En una base de datos con InnoDB nos podemos encontrar que tenemos un ibdata1 absurdamente grande y no acabamos de entender que hay en dicho fichero. Mediante un attach del bug #57611 de MySQL, podemos ver el tipo de páginas que contiene el ibdata

Si lo bajamos y lo compilamos, simplemente deberemos ejecutarlo indicando dónde tenemos el ibdata. Si el fichero es grande quiza nos interese añadir la opción -v para ver el progreso:

# ./innodbchecksum -v /mysql/data/mysql-data/ibdata1 
file /mysql/data/mysql-data/ibdata1 = 25436356608 bytes (1552512 pages)...
checking pages in range 0 to 1552511
page 19999 okay: 1.288% done
page 29999 okay: 1.932% done
page 39999 okay: 2.576% done
(...)
0       bad checksum
1189668 FIL_PAGE_INDEX
325740  FIL_PAGE_UNDO_LOG
15      FIL_PAGE_INODE
555     FIL_PAGE_IBUF_FREE_LIST
36328 …
[Lea más]
Generación Contraseña rápida con MySQL

Original post http://anothermysqldba.blogspot.com/2015/07/quick-password-generation-with-mysql.html

Aquí está una manera rápida y sencilla para generar una contraseña la aplicación utilizando MySQL. 
Esta consulta se creará una mayúscula y minúscula contraseña generada aleatoriamente en longitud y valores. 


SELECT CONCAT(UCASE(SUBSTRING( SUBSTRING(MD5(RAND()), FLOOR( 1 + (RAND() * 5)) , FLOOR( 8 + (RAND() * 15 )) ) , FLOOR( 1 + (RAND() * 4 )) , FLOOR( 4 + (RAND() * 12 )) )), 
SUBSTRING('!@#$%^&*', FLOOR( 1 + (RAND() * 4)) , FLOOR( 1 + (RAND() * 8)) ), 
SUBSTRING( SUBSTRING(MD5(RAND()), FLOOR( 1 + (RAND() * 5)) , FLOOR( 8 + (RAND() * 15 )) ) , 5)) as password \G 


Esta consulta tendrá un valor aleatorio para la …

[Lea más]
Procedimiento Secuencia de Fibonacci

Original post: http://anothermysqldba.blogspot.com/2015/06/fibonacci-sequence-procedure.html

Bueno, ha sido un tiempo desde que he publicado, lo siento por eso. Hoy estaba viendo reposiciones de la serie de televisión Fringe y cuando Walter referencia a la secuencia de Fibonacci Me lado seguido con opciones de MySQL para esto. 

Ahora este post ya existía: 


Así que tomé ese puesto y …

[Lea más]
Learning #MySQL at SoyData.Net

This entrance is dedicated to a new website for learning #BigData in spanish: SoyData.net. What is SoyData.net It is a collaborative online training platform on all matters relating to data in spanish. It now has 15 fully uploaded and available courses to which they have registered more than five hundred people in just two weeks. These courses address specific high demand technologies like Hadoop, MongoDB, R and cover key areas such as visualization, cloud computing or Structured Query Language (SQL). It also provides an introduction to #BigData concept for those...read more

Esta entrada Learning #MySQL at SoyData.Net es contenido original de Manejando datos - Blog de bases de datos y …

[Lea más]
Aprendiendo MySQL en soydata.net

Hoy voy a hablar de un sitio web que he descubierto hace bien poco sobre aprendizaje de Big Data en español: SoyData.net. Qué es SoyData.net Es una plataforma colaborativa de formación online sobre todo lo referente a los Datos en español. Ahora mismo cuenta con 15 cursos subidos y completamente disponibles, a los cuales se han inscrito ya más de medio millar de personas en sólo dos semanas. Estos cursos tratan de tecnologías específicas muy demandadas como Hadoop, MongoDB, R y también cubren áreas clave como visualización, cloud computing o...read more

Esta entrada Aprendiendo MySQL en soydata.net es contenido original de Manejando datos - Blog de bases de datos y …

[Lea más]
MySQL: extended insert

Al realizar dumps con mysqldump podemos hacerlo con los datos insertados mediante un único INSERT o bien un INSERT pode cada fila

# mysqldump --skip-extended-insert dbejemplo | grep ^INSER
INSERT INTO `a` VALUES (1);
INSERT INTO `a` VALUES (2);
INSERT INTO `a` VALUES (3);
# mysqldump --extended-insert dbejemplo | grep ^INSER
INSERT INTO `a` VALUES (1),(2),(3);

Dicho detalle también afecta al tiempo de importación

Vamos a usar una base de datos relativamente pequeña de ejemplo:

# du -hs /var/lib/mysql/dbejemplo/
57M     /var/lib/mysql/dbejemplo/

Creamos los dumps con y sin –extended-insert

# mysqldump --skip-extended-insert dbejemplo > /var/backup/test/skip-extended-insert.sql
# mysqldump --extended-insert dbejemplo > /var/backup/test/extended-insert.sql

En el caso del dump com extended …

[Lea más]
Total de transacciones InnoDB en MySQL

Para tener una idea de la actividad que tiene una base de dados normalmentr de usa SHOW PROCESLIST, pero es engañoso en algunos casos. Por ejemplo, si tenemos un pool de conexiones y también transacciones InnoDB abiertas veremos en ambos casos que estan en estado Sleep

Podemos verlo mediante la siguiente query:

mysql> select ps.id, ps.user,ps.host, ps.db, ps.command, ps.time, ps.state, trx.trx_state, ps.info from PROCESSLIST ps left join INNODB_TRX trx on ps.id=trx.trx_mysql_thread_id;
+----+------+-----------+--------------------+---------+------+-----------+-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| id | user | host      | db                 | command | time | state     | trx_state | info …
[Lea más]
Lessons learnt after doing webscrapping

Today it is time for lessons that I’ve learnt after finishing (successfully) a webscrapping to get all companies participans in #Fitur 2015, International Tourism Meeting (Feria Internacional del Turismo) in Spain, held every year in Madrid: the appointment for the turist sector. As a conclusion, I did it in near 3 days, and only using 160 lines of code. Only 160 lines? Yes, more or less. The coding time has been around 12 hours, plus 10-14 hours of processing, spread in a week or so!. Please, allow me not to...read more

Esta entrada Lessons learnt after doing webscrapping es contenido original de Manejando datos - Blog de bases de datos y programación. This entrance …

[Lea más]
Export large datasets from MySQL using Python

In the entrance about export large datasets we’ll see several ways of doing it, and now it is time to see how to do it with Python. Conecting to MySQL from Python Before continue, you could read here how to  conect to MySQL from Python, where you also use a class I use to connect because this class does what I like. But for this entrance, I will conect directly to MySQL by using the library PyMySQL. You only need to import the library, set the correct informacion for the...read more

Esta entrada Export large datasets from MySQL using Python es contenido original de Manejando datos - Blog de bases de datos y programación. This entrance Export large datasets from …

[Lea más]
Exportar grandes recordsets de MySQL desde Python

En la entrada sobre exportación de grandes recordsets ya vimos distintas formas de ejecutar la tarea, y dejamos pendiente cómo conseguirlo usando Python. Conectando con MySQL desde Python Ya hablamos de cómo conectar con MySQL desde Python en una entrada anterior, donde también publicaba una clase personalizada mia para facilitarme la tarea. Para este caso, voy a conectarme directamente a MySQL mediante la libreria PyMySQL sin clase ninguna. Sólo necesito importar la libreria, establecer la información de la conexión, y … listo! Para comprobar el tiempo, me he creado una...read more

Esta entrada Exportar grandes recordsets de MySQL desde Python es contenido original de …

[Lea más]