2010-04-09 34 views
8

Estoy trabajando en un proyecto que implica una gran cantidad de datos del delicioso sitio web. Los datos disponibles son "Fecha, Id. De usuario, URL, Etiquetas" (para cada marcador).Diseño de base de datos para gran cantidad de datos

Normalicé mi base de datos a 3NF, y debido a la naturaleza de las consultas que queríamos usar en combinación, bajé a 6 tablas ... Sin embargo, el diseño se ve bien, ahora que una gran cantidad de los datos están en la base de datos, la mayoría de las consultas deben unir al menos 2 tablas para obtener la respuesta, a veces 3 o 4. Al principio, no tuvimos problemas de rendimiento, porque para las pruebas no habíamos agregado demasiado datos a la base de datos. Ahora que tenemos una gran cantidad de datos, simplemente unir mesas extremadamente grandes lleva mucho tiempo y para nuestro proyecto, que tiene que ser en tiempo real, es un desastre.

Me preguntaba cómo las grandes empresas resuelven estos problemas. Parece que normalizar las tablas solo agrega complejidad, pero ¿cómo maneja la gran empresa grandes cantidades de datos en sus bases de datos, no utilizan la normalización?

Gracias.

Respuesta

13

Ya que preguntó acerca de cómo las grandes empresas (por lo general) se acerca a este:

lo general, tienen un DBA (administrador de base de datos) que vive y respira la base de datos utiliza la empresa.

Esto significa que tienen personas que saben todo, desde cómo diseñar las tablas de manera óptima, perfilar y ajustar las consultas/índices/OS/servidor hasta saber qué revisión de firmware del controlador RAID puede causar problemas para la base de datos.

No habla mucho sobre el tipo de ajuste que ha realizado, p.

  • ¿Está utilizando tablas MyISAM o InnoDB? Su rendimiento (y no menos sus características) es radicalmente diferente para diferentes cargas de trabajo.
  • ¿Las tablas están correctamente indexadas según las consultas que ejecuta?
  • ejecuta EXPLAIN en todas tus consultas, lo que te ayudará a identificar las claves que se pueden agregar/eliminar, si se seleccionan las claves adecuadas, comparar consultas (SQL te deja con muchas maneras de lograr las mismas cosas)
  • sintonizaste el caché de consulta? Para algunas cargas de trabajo, el caché de consultas (predeterminado activado) puede causar una desaceleración considerable.
  • ¿Cuánta memoria tiene su caja, y está sintonizada para aprovechar esto?
  • ¿Utiliza un sistema de archivos y una configuración de ataque orientada a la base de datos?
  • A veces se necesita un poco de desincronización.
  • Diferentes productos de base de datos tendrán diferentes características, MySQL puede ser tremendamente rápido para algunos worlkoads y lento para otros.
+3

Gracias por su respuesta. Honestamente, no estaba pensando en las cosas que mencionaste aquí. Ahora me di cuenta de que he ignorado mucho cuando estaba diseñando la base de datos. La base de datos usa MyISAM. Leeré sobre las cosas que mencionaste. muchas gracias – Hossein

Cuestiones relacionadas