¿Cuáles son algunas prácticas básicas de administración de bases de datos relacionales que un desarrollador de software debe adoptar desde el principio?

  1. Siga el principio de menor privilegio. No solo las personas, sino también en su capa de aplicación. Las credenciales de sus servidores web no deberían poder acceder a sus registros financieros y de recursos humanos.
  2. Mantenga su servidor de base de datos dedicado. Debe ser robusto, mucho procesador, mucha RAM y mucho espacio en el disco duro.
  3. Si es una aplicación que requiere alta disponibilidad, configure la replicación.
  4. Establecer copias de seguridad. Para cuando tus datos se envenenan. Pruebe las copias de seguridad realizando una restauración una vez al mes.
  5. La replicación no es una copia de seguridad, que aprenderá si alguna vez se envenenan sus datos.
  6. Tenga un plan de recuperación ante desastres por escrito. Pruébelo una vez por trimestre. Consigue que otros administradores de SQL lo aprueben.
  7. Configure el monitoreo del espacio en el disco duro para que reciba una advertencia cuando las cosas comiencen a llenarse.
  8. Aprenda a ver y optimizar los planes de ejecución. Esto varía según el DBMS.
  9. En ocasiones, active la supervisión lenta de consultas y optimice sus peores consultas.
  10. Desde el punto de vista del desarrollador, diría que esto es lo más importante que puede hacer. Cuando escriba su esquema, siga una convención de nomenclatura. Por ejemplo, todas las claves externas en mis sistemas son {table_name} _id. Todas las claves principales en una tabla son {table_name} _id. Esto hace que unirse a muchas tablas sea mucho más fácil, y es mucho menos probable que los nuevos tipos exploten la base de datos.
  11. Al escribir consultas, asegúrese de que el 99.9% de su combinación y las condiciones están en claves externas o enteros, y al menos en un campo indexado.

Existen múltiples áreas donde es gris entre un desarrollador y un administrador cuando se trata de bases de datos, por ejemplo:

  • Índices: diseño e implementación de índices generalmente realizados por el dba, sin embargo, nunca dejaré mis tablas sin indexar correctamente para dar un impulso de rendimiento a la mayoría de mis consultas.
  • Seguridad: roles, inicios de sesión y permisos
  • ETL
  • Diseño de informes complejos a partir de datos de tablas existentes
  • Automatizar algunas tareas, como copias de seguridad, reconstrucción de índices
  • Configuraciones complejas y ajustes
  • Alta disponibilidad (dependiente del proveedor): replicación, duplicación, agrupamiento

Mantener el currículum actualizado.

Los desarrolladores no administran bases de datos. Si la compañía espera que usted haga ambos trabajos (desarrollo de software y administración de bases de datos), busque un trabajo que tenga algunos días libres al mes. (Dejé los trabajos que demandaban menos, más de lo que se podía esperar que hiciera cualquiera, pero menos de 2 trabajos de tiempo completo por un salario).

More Interesting

Cuando desarrolle software SaaS que sea bastante complejo, ¿debería contratar a múltiples desarrolladores en Upwork o contratarlos internamente en una oficina local física?

¿Cuál es la mejor manera para que un cambiador de carrera se prepare para convertirse en desarrollador de software?

¿Cuántos programadores se necesitan para este tipo de proyecto?

¿Cuál es el proceso de desarrollo de un software ERP?

Si Richard Stallman se saliera con la suya y todo el software se volviera libre, ¿qué le haría eso a la economía de Silicon Valley? ¿Se derrumbaría? ¿Las personas seguirían desarrollando software? ¿Qué, si alguno, surgirían nuevos modelos de negocio?

¿Cómo debería un gerente de software lidiar con una situación cuando un ingeniero que entendió el funcionamiento de un software crítico ha decidido abandonar la empresa?

Cómo conseguir un trabajo de desarrollador iOS con seis meses de experiencia

¿Cuál es el futuro de un desarrollador de software después de un MBA con 6 años de experiencia?

¿Puede un recién graduado de ingeniería mecánica administrar un rol de desarrollador de software?

¿Qué les sucede a los desarrolladores de software que no son "programadores de estrellas de rock", "genios de las matemáticas" o que no trabajan para Google o alguna de las 5 grandes compañías después de haber cumplido los 40 años? ¿Luchan por encontrar trabajo?

¿Los desarrolladores de software inteligente cometen errores en sus primeros días?

He sido desarrollador de software durante 4 años, trabajé con organizaciones en el lado del cliente y en el extranjero. ¿Soy elegible para el examen CSM?

Como desarrollador de software, ¿tiene miedo de envejecer?

¿Qué hace a un buen programador OCaml?

¿Qué es mejor, desarrollador de software o ingeniería de TI?