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)