Mejores Prácticas de Bases de Datos
Cambios de esquema seguros, indexación e higiene de consultas para servicios de Python.
Cómo Usar Esta Lista
- Revísala durante las revisiones de diseño y antes de los despliegues a producción.
- Convierte los fallos repetidos en políticas automatizadas de CI siempre que sea posible.
- Vuelve a revisarla después de las actualizaciones menores del framework.
Esquema
- Cada cambio se realiza a través de migraciones de Alembic o Django.
- Añade índices para los filtros y uniones que realmente ejecutas.
- Prefiere migraciones aditivas antes de cortes destructivos.
Consultas
- Parametriza el SQL; nunca interpoles cadenas de usuario.
- Carga ansiosamente las relaciones utilizadas en los endpoints de lista.
- Pagina los grandes conjuntos de resultados en la base de datos.
Operaciones
- Dimensiona los pools según el número de workers y las conexiones máximas de la DB.
- Monitoriza los logs de consultas lentas y las esperas de bloqueo.
- Realiza copias de seguridad y prueba las restauraciones de forma programada.
Seguridad
- Utiliza roles de DB de mínimo privilegio por servicio.
- Cifra las conexiones con TLS a la base de datos.
- Rota las credenciales sin incrustarlas en las imágenes.
Preguntas Frecuentes
¿Cuándo debo adoptar las mejores prácticas de bases de datos?
Úsala cuando los patrones y las compensaciones de esta página coincidan con tu API o límite de datos.
¿Cuál es el principal error de producción con las mejores prácticas de bases de datos?
Omitir la validación, los tiempos de espera o los contratos de error explícitos en el borde HTTP.
¿Cómo pruebo las mejores prácticas de bases de datos?
Utiliza el cliente de pruebas del framework, anula las dependencias y afirma la forma del estado y del JSON.
¿Las mejores prácticas de bases de datos funcionan con Python 3.14?
Sí, los ejemplos se dirigen a Python 3.14 con versiones de framework fijadas del pie de página de la pila.
¿Cómo se relacionan las mejores prácticas de bases de datos con Pydantic 2?
Valida y serializa en los límites; mantén los servicios funcionando con objetos de dominio tipados.
¿Sincronizado o asíncrono?
Prefiere rutas asíncronas cuando las operaciones de I/O dominan; mantén el trabajo de CPU pequeño o descárgalo en workers.
¿Dónde debe residir la lógica de negocio?
Handlers delgados; los servicios poseen las reglas; los repositorios poseen las consultas.
¿Cómo documento las APIs?
Publica documentación OpenAPI o de esquema que coincida con los modelos de respuesta en el código.
¿Cómo manejo el versionado?
Versionado explícito de URL o encabezado con ventanas de deprecación - evita roturas silenciosas.
¿Qué debo leer a continuación?
Sigue los enlaces Relacionados para obtener la siguiente capa de profundidad en esta sección.
¿Cómo me mantengo seguro?
Autentica a los llamadores, autoriza por recurso, limita la tasa y nunca registres secretos.
¿Primer paso para el rendimiento?
Mide la latencia de la DB y la de los sistemas upstream antes de cambiar de framework.
Relacionados
- Conceptos Básicos de Bases de Datos - Conexiones y transacciones
- SQLAlchemy ORM 2.0 - Patrones ORM
- Migraciones con Alembic - Cambios de esquema
- Acceso Asíncrono a Bases de Datos - asyncpg
Versiones de la pila: Esta página fue escrita para Python 3.14.0 (estable 3.14, mantenimiento 3.13), FastAPI 0.115+, Django 5.2, Flask 3.1, Pydantic 2, PyTorch 2.6+, pandas 2.2+, Polars 1.x, ruff 0.9+, y uv 0.6+.