Estoy construyendo un sitio web que implicará trabajar con una gran base de datos. ¿Cuáles son las cosas que debo aprender para administrar la base de datos?

Hay algunas cosas que debe tener en cuenta cuando intente trabajar con grandes bases de datos. Centrarse en la escalabilidad horizontal. Necesita escalabilidad de lectura y escalabilidad de escritura. Para leer la escalabilidad, prepare esclavos. Para la escalabilidad de escritura, prepare más maestros. Si tiene alguna idea de cómo crecerán los datos, puede planificar el fragmentación de sus tablas.

Su código debe ser capaz de manejar estos escenarios. Para cada consulta en su código, debe poder especificar la base de datos / servidor en el que debe ejecutarse la consulta. Usa conexiones flojas. Crear una fábrica de bases de datos.

Y optimizar las consultas. Use índices juiciosamente. Reduce las consultas que llegan a la base de datos. Por ejemplo, si está disparando múltiples consultas dentro de un bucle. Considere usar el bucle para crear una sola consulta y disparar solo una vez.

Para resumir, no hay una solución única para esto. Tendrá que improvisar a medida que aumenten los datos. Si tiene un sistema de monitoreo decente, debería poder predecir y planificar cómo manejar los datos crecientes.

  • Normalizar primero.
  • Modelar con precisión. Tipo de uso y restricciones únicas.
  • Comprende cómo elegir las teclas.
  • Utilice restricciones integrales de clave externa y reglas de cascada prudentes.
  • Utiliza InnoDB.
  • Aprenda lo que las vistas pueden hacer por usted.
  • Póngase cómodo con formularios de consulta más avanzados (evite las subconsultas pero use tablas derivadas).
  • Considere usar PostgreSQL o, para partes particulares de su sistema, no relacional según la respuesta de Metin Emenullahi (pero solo después de un análisis cuidadoso).

Al trabajar con sitios más pequeños, los desarrolladores web más competentes pueden administrar la base de datos ellos mismos. A medida que crece el tamaño y la complejidad de la base de datos, también lo hace la necesidad de conocimientos y habilidades específicas para la administración de la base de datos.

Algunas sugerencias prácticas.

  • Familiarícese con los comandos mysqldump y mysqlhotcopy . No espere que pueda continuar utilizando interfaces como @@ phpMyAdmin para hacer copias de seguridad, copiar y mover bases de datos muy grandes.
  • Planifique cuántos recursos adicionales del sistema necesitará para alojar la base de datos
  • Si se agregan y actualizan muchos datos, lea un poco sobre cómo MySql trata el bloqueo en una tabla y el nivel de registro, según sus requisitos, la decisión de qué motor de base de datos usar (MyISAM vs InnoDB) será un gran rendimiento factor.
  • Conceptos importantes que necesitará aprender y aplicar; planificación de capacidad, recuperación ante desastres, diseño de bases de datos y ajuste de rendimiento.

¡Buena suerte!

Lo primero que debe saber es que administrar una gran cantidad de datos requiere mucha experiencia y es un trabajo a tiempo completo. Probablemente más de uno. A menos que la administración de datos sea una de las principales competencias y diferenciadores de su empresa, no la administre usted mismo. Use un proveedor de la nube como Amazon. Todavía debe preocuparse sobre cómo modelar mejor los datos, la indexación, pero al menos se manejará la parte de escala y replicación.

Aprenda las diferencias entre dbs rel y nonrel, así como qué db distro es mejor que otra en qué perspectivas. Y después de eso puedes decidir qué elegir. Pero la teoría por sí sola no es suficiente, debe tener experiencia para decidir con claridad. Así que le sugiero que pregunte a algunas personas con experiencia. Tal vez pueda encontrar la ayuda perfecta aquí, si solo elabora el “big data” que va a procesar.

More Interesting

Soy un nuevo programador que busca entrar en el desarrollo web. ¿Con qué tecnología debo comenzar?

Necesito hacer un proyecto en mi curso de ingeniería de software con Java para Web, servicios web y programación de Android. ¿Qué sugieres?

Quiero comenzar un lenguaje de programación web en C. ¿Qué debo hacer?

Si quiero ganar más dinero, ¿debo seguir mi camino actual como desarrollador front-end o debo seguir adelante y desarrollar algunas habilidades de gestión?

Estoy interesado en el desarrollo web. ¿Qué curso debo seguir: J2EE-Struts con Hibernate Framework o J2EE-Hibernate con Spring Framework? ¿Cuál es la diferencia entre los dos?

Si quiero entrar en el campo del diseño web, ¿qué idiomas debo aprender?

Sé HTML y CSS. ¿Cuál es la mejor manera de aprender JS gratis?

Cómo convertirse en un corredor de bolsa

He estado lejos de PHP por casi dos años. ¿En qué debería centrarme para conseguir un trabajo de liderazgo tecnológico en PHP? ¿Qué es lo último en PHP hoy en día?

Deseo ser un desarrollador front-end. ¿Cuál es el alcance de esto en India? ¿Qué habilidades se requieren para ser un desarrollador front-end?

Mi Ajax se ejecuta correctamente, los valores se pasan al otro JSP pero cuando intento mostrar el valor en un control en la página JSP, ¿muestra 'nulo'?

¿Qué idiomas, API y marcos necesito aprender para convertirme en un desarrollador web de Full Stack?

Estoy aprendiendo a ser un desarrollador web full stack. Descubrí que el desarrollo frontend es mucho más difícil que el desarrollo backend. ¿Es esto solo mi error?

Soy un desarrollador web. ¿Por qué las personas no técnicas simplemente uso Squarespace cuando realmente creo backends complejos?

Todavía no he trabajado en Javascript, pero sé algunas cosas básicas en Javascript. Me gustaría aprender React JS, ¿puedo?