Cómo crear 8 millones de registros en una tabla de MySQL

Por el 8 de diciembre de 2008

en: Sin categoría

En algunas ocasiones necesitamos recurrir a tablas con un gran número de registros para probar el rendimiento del servidor de base de datos.

Es una operación que rara vez tenemos que realizar por lo que no hay demasiada información sobre cómo crear un gran número de registros sin tener que recurrir a un lenguaje de programación.

Para hacer tests fiables sobre “tablas grandes” lo más recomendable es utilizar una tabla con un buen número de registros (más de 5.000.000 serán suficientes).

Para poder crear esta cantidad de datos sin problemas podemos hacerlo de la siguiente forma.

Creamos la tabla en la base de datos:

CREATE TABLE `t` (
`a` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Y ejecutamos esta consulta las veces que sea necesaria, con unas 23 veces será necesario ya que cada vez que se ejecuta la consulta se va multiplicando exponencialmente el número de registros y 2^23 = 8.388.608 que son suficientes registros para nuestras pruebas.

INSERT INTO t(a) VALUES(current_date);
INSERT INTO t SELECT * FROM t;

Si hemos repetido las suficientes veces la consulta tendremos 8.388.608 de registros que ocuparán aproximadamente unos 240 MB y con la que podremos experimentar con consultas simples y ver su rendimiento, y sólo habremos necesitado un minuto para crear la tabla de pruebas.

Ejemplo de prueba simple sobre nuestra nueva tabla.

SELECT count(*) FROM t WHERE a = current_date;
+----------+
| count(*)
+----------+
|  8388608
+----------+
1 row IN SET (5.23 sec)
  • Entradas relacionadas:
  • No hay coincidencias

2 Respuestas a Cómo crear 8 millones de registros en una tabla de MySQL

Avatar

Jose Miguel

31 de agosto de 2011 a las 9:19 pm

Que es lo que realiza esta operacion o como es que funciona , no entiendo como es que realiza la duplicacion de los datos.

Avatar

Eduardo

1 de febrero de 2012 a las 9:44 pm

Solo inserta la tabla dentro de la misma tabla osea primero inserto un dato, luego inserta la tabla dentro de la misma tabla osea la segunda vez tendras 2 registros la tercera vez que ejecutas tendras 4 registros y asi al doble…

Saludos.

Dejar un comentario