Base de datos para buscar muchos datos sin formato

Actualmente uso MySQL y Sphinx para administrar una base de datos bastante básica que contiene casi 350 000 000 registros. Se espera que alcance los mil millones de registros en menos de 200 días (entre 2000 y 5000 registros por minuto). MySQL es terriblemente lento y Sphinx mejora bastante la velocidad, pero la indexación delta es una molestia y no estoy seguro de si los índices RT son una opción.

Los datos consisten en varios valores enteros y un valor flotante. Buscamos a través de la base de datos basándonos en coincidencias de enteros y rangos de enteros (como hacer coincidir tal vez 4 columnas de enteros exactamente, y le daremos a otra columna de enteros un rango entre xy x+20000000).

Idealmente, el mejor software sería gratuito (tanto en freedom como en free-beer), fácil de configurar y devuelve las búsquedas rápidamente (<0,5 segundos). También debería tener bibliotecas disponibles para NodeJS o cualquier otro lenguaje de secuencias de comandos (no es realmente necesario).

Dado que está creciendo tan rápido, ¿quizás su hardware ya no es adecuado para la carga de trabajo?
Consulte también una pregunta similar sobre StackOverflow, base de datos que puede manejar> 500 millones de filas .

Respuestas (2)

Dos sugerencias: 1) Oracle Database 11gR2 , 2) MongoDB .

1) Base de datos Oracle 11gR2:

El DBMS más avanzado y más poderoso para soluciones de transacciones pesadas. Se puede descargar y utilizar de forma gratuita (el soporte es comercial).

Lo probé en una computadora portátil ordinaria con un conjunto de datos de aproximadamente 90 millones de registros. Las búsquedas basadas en el campo Id (que era Integer) se devolvieron en 0,1 s.

2) Mongo DB:

El DBMS más popular NoSQL-Basedque tiene una gran capacidad de integración con Node.Js. De hecho, es un Document-BasedDBMS adecuado para Big Data.

¿Adónde ir?

1) Si desea tener la sensación de trabajar con un RDBMS (al igual que MySQL) y si su búsqueda se basa en valores enteros (debe crear índices sabiamente para esas columnas).

2) Si la integración con Node.Js es importante para usted y sus datos no estarán estructurados.

postgres

Postgres es la solución ideal si necesita una base de datos de calidad empresarial que ofrezca "libertad" (código abierto) y "cerveza gratis" (sin costo).

Pero no hay fórmula mágica, no hay forma de eludir la necesidad de:

  • Cantidad muy saludable de memoria (RAM) instalada con un sistema operativo de 64 bits .
  • Diseño cuidadoso de tablas/columnas e índices.
    Sus necesidades extremas pueden justificar la desnormalización de los datos.
  • Estudie y practique con varias configuraciones de memoria y caché en Postgres y OS.
    Para la mayoría de las personas y la mayoría de los proyectos, la configuración predeterminada en Postgres es lo suficientemente buena. Pero es probable que su caso sea ayudado por algunos ajustes y perfiles. La comunidad de Postgres ofrece excelente documentación, listas de correo, libros comerciales y empresas de consultoría expertas para ayudar.