MongoDB vs MySQL: Inserción de datos

Publicado
Comentarios2

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.

MySQLMongoDB
70.000 users12s3s
70.000 IPs12s3s
1.300.000 domains4m 36s58s
70.000 unique users with indexes28s23s
70.000 unique IPs with indexes31s22s
1.300.000 unique domains with indexes14m 13s8m27s
1.000.000 log entries26m 14s12m 7s
5.000.000 log entries2h 10m 54s1h 03m 53s
10.000.000 log entries3h 27m 10s1h 59m 11s
30.000.000 log entries10h 18m 46s5h 55m 25s

Ver también

El resto de esta serie de artículos


Etiquetas: , ,

Comentarios

  1. juan#

    Hola, ¿sabrías dónde encontrar información tan detallada como la que tú muestras pero entre Cassadra y MySQL ? .. Muchas gracias

  2. Ciges#

    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 ...

Escribe debajo tu comentario. Los campos marcados con * son obligatorios. Tienes que previsualizar tu comentario antes de enviarlo definitivamente.