Bases de datos descomunales
6 seguidores
Hola, me gustaría saber si alguien conoce alguna tesis o "caso de estudio" sobre alguna base de datos verdaderamente "enorme".
Últimamente me he estado documentando sobre el uso de MYSQL en proyectos "descomunales" y pese a que encuentro muchas cifras no encuentro algún caso bien documentado.
Lo que tengo en mente es una base de datos de unos 30 millones de usuarios =P
victorcoder
Pos si te interesa, en el proyecto Hadoop tienes una implementación open source de bigtable.
De todas formas conozco aplicaciones con cantidades industriales de datos que están trabajando con MySQL usando 4 o 5 servidores en cluster y funcionan bien. El problema mas grande lo tendrás en las operaciones de escritura pero no en las de lectura.
salu2
ruleta
Quizas te venga bien este libro High Performance MySQL, trata temas como, como crear los esquemas de las tablas, estrategia de indices, optimización de consultas, optimizacion del servidor, etc
He "heredado" una tabla de usuarios con un millon y medio de registros (y creciendo) y estoy viendo como optimizarla. De momento siguiendo los consejos sobre los indices y el esquema de la base datos he reducido un 10% el tamaño de los datos de la tabla y un 50% el de los indices.
Saludos
Usuario desconocido
Me queda clarisimo que el punto fundamental de la decisión es el que comenta barmekia
1. Usar caches
2. El GB es más barato el GHz
Saludos y mil gracias a todos!!
barmekia
En realidad las bases de datos relacionales son buenas para unas cosas y muy malas para otras.
Si queremos ser eficientes hablando de espacio, las bases de datos relacionales son muy buenas, evitan redundancias... Pero a la hora de leer datos, si tenemos que cruzar 2 tablas con tan solo 1000 registros cada una eso en un producto cartesiano son 1.000.000 de registros que hay de filtrar y no es nada eficiente.
Tienes 2 soluciones. Usar caches. Es decir, que las consultas se realicen cada cierto tiempo y no en cada uso.
O usar BigTable o similar. El "problema" de estas bases de datos es que crean redundancias y son ineficientes a la hora de meter datos ya que tienes que meterlos en varias tablas diferentes. Pero las lecturas son más rápidas.
PD. Usar BigTable no te exime de usar caches... siempre mejorará el rendimiento.
PD2. Por otra parte, da igual que BigTable sea ineficiente en cuanto a espacio... es más barato pagar GB que pagar GHz.
dagi3d
¿qué tipo de aplicación vas a hacer? lo digo porque igual te interesa algún sistema de bases de datos documental o sistema de indexación tipo lucene, que suelen trabajar bien con un volumen grande de datos
también comentar que no siempre interesa tener la tabla normalizada si ganas velocidad en las consultas y también, que los sistemas grandes suelen utilizar herramientos tipo memcached para agilizar las consultas
de todas maneras, sí que hay aplicaciones 'gigantes' que usen mysql, pero por norma no se trata de una instalación 'out of the box' si no que utilizan varios clusters o cosas así
échale un veo a este blog por si encuentras alguna cosa que te pueda servir: http://highscalability.com/tags/mysql
thecoder
No soy ningun entendido del tema pero buscando:
IS MYSQL-PARTITIONING USEFUL FOR VERY BIG REAL-LIFE-PROBLEMS?
Eso te podria servir, habla sobre particionar para trabajar con cantidades de datos enormes.
Usuario desconocido
Vaya sorpresa que he llevado el día de hoy... toda mi vida pensando en la forma de optimizar el rendimiento y cumplir con la normalización... y hoy me encuentro conque el mismisimo google en lugar de una base de datos relacional y bien normalizada... utiliza una graaaaaaaaaan tabla.
http://labs.google.com/papers/bigtable.html