Cuanto aguanta Mysql?

NeB1

Buenas a todos,

Estoy haciendo un proyecto, que realmente es el primero que se vé que va a tener un uso masivo, y estoy acojonado con el tema de la base de datos.

Hay una tabla 'registro_envios' que va a crecer de una forma desproporcionada, tiene 7 campos, casi todos int, menos un datetime y un varchar de 20. La aplicación consiste en mogollón de clientes (hemos instalado en 30, pero antes de fin de año serán 500) que envían campañas publicitarias a través de bluetooth a todos los móviles cercanos.

La gracia de mi aplicación es que se gestiona desde internet (el cliente carrefour puede cambiar al vuelo, la campaña de todos sus puntos bluetooth en toda españa). Hasta ahí todo bien.

El tema es que querían estadísticas ultra detalladas, queriendo poder consultar hasta la hora de cada envío, así que cada vez que se hace un intento de envío a un móvil, se guarda en la DB, la fecha y hora, y el resultado del envío, para luego hacer estadísticas del rollo 'que % de móviles rechaza en la comunidad valenciana, frente al pais vasco en X intervalo de tiempo'

Pues ahí está el cuello de botella, en 4 días, esta tabla tiene 120.000 registros aprox. y solo hemos instalado 30 clientes, no sé, y miedo me dá pensarlo, hasta cuanto aguantará, no sé ni el límite de tamaño (o hasta cuando funcionará fluidamente) ni de consultas simultaneas, porque los datos se actualizan cada 30 minutos, así que 500 puntos haciendo mazo consultas cada 30 minutos...

Hasta cuanto creeis que puede aguantar mysql? en el caso de llegar al tope, como se puede distribuir la carga en diversos servidores manteniendo la integridad de una única base de datos??

B

puedes ver los "clientes" de mysql aquí http://www.mysql.com/customers/ así si ves a alguno q creas q es parecido a lo vuestro te haces una idea...

y http://lists.mysql.com/mysql/203054

hace no mucho me hice la misma pregunta, llegué a la conclusión q lo más importante era preocuparse por el hardware más q nada, pero en teoría he llegado a leer que aguanta millones de registros, pero claro, si en 30 clientes, en 4 días , teneis 140 mil... en 500 en un mes... se nos va de las manos xD

a ver si viene algun entendido q nos ilumine algo más

LOc0

Yo creo que con un BUEN SERVIDOR (o servidores), MyISAM (cuando puedas) y la mayoría de estos truquis -> http://forge.mysql.com/wiki/Top10SQLPerformanceTips http://www.baluart.net/articulo/10-tips-para-optimizar-consultas-mysql no deberías tener mayores problemas.

Pero vamos, en una palabra: HARDWARE

Salu2 ;)

PD:

http://vegan.net/tony/supersmack/
http://dev.mysql.com/doc/refman/5.0/en/mysql-benchmarks.html

OleMoudi

No.

NeB1

Ostia muchas gracias, son unos recursos geniales.

Lo de las particiones por fecha es muy interesante, ya os digo algo cuando me rebiente el servidor y nos toque comprar uno mejor xD

PiradoIV

#5 en ese caso, felicidades, tendréis dinero como para pagar por un servidor de bases de datos más potentorro x)

GamA

Yo he tenido un server de wow y tenía tablas con más de 5 millones de entradas. 2000 jugadores online transfiriendo información con el servidor, y por tanto cambiando información con la base de datos. De hecho los backups eran de más de 3 GB de información en MySQL

Si bien es cierto que si tenéis demasiadas consultas y veis que la latencia de respuesta aumenta, yo me haría con un SSD si no necesito excesiva capacidad, pero si velocidad. Por otro lado el motor del SGBD puede cambiar mucho las cosas, mírate como va MyISAM.

LR

Yo cuando hice las practicas, teniamos tablas con 35 millones de registros mas o menos y la verdad es que no iba nada mal.

NeB1

me reconforta ver esas cantidades xDD

si fueran datos que sé que a la larga no se iban a consultar, una opción también era, los datos anticuados guardarlos en una tabla rollo 'registro_envios_old'. Así cada X tiempo la tabla más activa es más pequeña y las consultas sobre esa tabla tardan menos. Pero bueno, hasta llegar a 30 millones de registros me queda un rato xDD

(en verdad no tanto, pero weno xD)

eXtreM3

#8 hombre... hay que depurar MUY BIEN las consultas para que vaya fluido hacer una búsqueda en una base de datos tan grande.

Yo cuando hice las prácticas había tablas en la BD que tenían 8 y 10 millones de registros, si hacías un SELECT * te petaba, te daba un out of memory, y eso que desde el server desde el cuál hacía las consultas tenía 16 Gb de ram, abría el administrador de tareas y veía como se iba llenando poco a poco la memoria hasta llegar al límite y petar xDDD, era brutal.

Pero claro, para eso están las consultas, ajustando y depurando MUY BIEN lo que quieres, va rápido te lo puedo asegurar ;)

GamA

Hombre, es que yo si tengo que tirar de 30 millones de entradas, me tiro a por Oracle de cabeza. La optimización de consultas que tiene de base es muy buena, y la optimización de consultas que puedes hacer (si sabes, claro) puede ser cojonuda :).

BLZKZ

pero con oracle no deberia comprar una licencia?

Siempre escuché que oracle es caro y solo interesa en empresas grandecillas (en su caso quizás si compensara xD)

Crawler

bueno, no es un dato muy tecnico, pero facebook rula sobre mysql... lo que indica que aguantar debe de aguantar lo suyo ;)

eXtreM3
Consejos para optimizar consultas mysql - Ladrillo inside

Fuente: http://www.facebook.com/note.php?note_id=353213157324

Joder realmente hay cosas interesantes ^^

NeB1

#12 eso tengo entendido

#14 la mayoría de los trucos para las consultas se habían posteado un poco más arriba, lo otro no todo.

BTW está mogollón interesante.

He leído por ahí una instrucción que se llama 'insert delayed' que yo no tenía ni idea de que existía xD y su funcionamiento me va a resolver un pequeño problema que tenía :D:D

Soltrac

#10 Hombre, un SELECT * a tantos registros es un poco bestia, por mucha máquina que tengas XDDDD.

Otra cosa es saber que índices usar, te ayudarán en sentencias SELECT. Supongo q MySQL permite usarlos.

GamA

#12 Hay versiones gratuitas de Oracle que no necesitan licencia. No se exactamente las restricciones que tienen, pero siempre se puede hacer una comparativa. Lo bueno es que, que yo sepa, las optimizaciones se pueden realizar sobre la versión express. Lo digo porque este año en 4º de carrera tuve que hacerlas y juraría que tienen la versión 11g express allí.

Meleagant

#7 Tú no serías el administrador de Reinos Iberos ¿no?

GamA

#18 Ese mismo...

7 comentarios moderados
2 meses después
eXtreM3

Qué ha pasado aquí para esta limpieza?? oO

TheBis

Probablemente se pusieron a hablar del servidor pirata del wow

Usuarios habituales