
Para comparar el rendimiento de MongoDB versus MySQL he diseñado una base de datos para registrar logs de acceso a Internet equivalente en ambos sistemas y llenado dichas bases con el mismo volumen de datos. Luego he desarrollado varios scripts para testear distintos escenarios
El volumen de datos ha sido:
- 70.000 usuarios
- 70.000 IPs
- 1.300.000 dominios de Internet
- 90.000.000 de entradas correspondientes a accesos no FTP
- 4.500.000 de entradas correspondientes a accesos FTP
En este análisis hemos comparado
- MySQL 5.0.26 con tablas MyISAM
- MongoDB 2.2.0
Los números mostrados corresponden al tiempo de ejecución y son la media de tres pruebas diferentes para cada caso.
Tanto en la documentación del proyecto “An Open Source NoSQL solution for Internet Access Logs Analysis” como en el repositorio Github con el código fuente hay un listado y una descripción de los tests realizados.
Resultados de los tests de inserción
He lanzado 10 tests distintos de insercion de datos, tests que insertan datos en un bucle de forma continuada. Son 20 scripts PHP en total, la mitad para MongoDB y la otra mitad para MySQL.
MySQL | MongoDB | |
70.000 users | 12s | 3s |
70.000 IPs | 12s | 3s |
1.300.000 domains | 4m 36s | 58s |
70.000 unique users with indexes | 28s | 23s |
70.000 unique IPs with indexes | 31s | 22s |
1.300.000 unique domains with indexes | 14m 13s | 8m27s |
1.000.000 log entries | 26m 14s | 12m 7s |
5.000.000 log entries | 2h 10m 54s | 1h 03m 53s |
10.000.000 log entries | 3h 27m 10s | 1h 59m 11s |
30.000.000 log entries | 10h 18m 46s | 5h 55m 25s |
Ver también
El resto de esta serie de artículos
Comentarios
Hola, ¿sabrías dónde encontrar información tan detallada como la que tú muestras pero entre Cassadra y MySQL ? .. Muchas gracias
Hola, Juan
Lo siento pero la verdad es que no.
De todas formas siempre puedes coger los scripts y realizar este mismo trabajo sustituyendo MongoDB por Cassandra.
Añadir comentarios ...