La pregunta más importante es: ¿conducirías con los ojos vendados? Así es si desarrolla un sistema sin restricciones referenciales. Tenga en cuenta que los requisitos comerciales cambian, los cambios en el diseño de la aplicación, los supuestos lógicos respectivos en los cambios del código, la lógica en sí misma se puede refactorizar, etc. En general, las restricciones en las bases de datos se establecen bajo suposiciones lógicas contemporáneas, aparentemente correctas para un conjunto particular de aserciones y suposiciones lógicas.
A través del ciclo de vida de una aplicación, las comprobaciones de referencia y de datos restringen la recopilación de datos policiales a través de la aplicación, especialmente cuando los nuevos requisitos generan cambios lógicos en la aplicación.
Para el tema de este listado , una clave externa no "mejora el rendimiento" por sí misma, ni "degrada el rendimiento" significativamente desde el punto de vista del sistema de procesamiento de transacciones en tiempo real. Sin embargo, hay un costo agregado para la verificación de restricciones en el sistema de "lote" de alto volumen. Entonces, aquí está la diferencia, proceso de transacción en tiempo real versus proceso por lotes; procesamiento por lotes: donde el costo total, incurrido por verificaciones de restricciones, de un lote procesado secuencialmente representa un impacto en el rendimiento.
En un sistema bien diseñado, las verificaciones de consistencia de datos se realizarían "antes" de procesar un lote (sin embargo, también hay un costo asociado aquí); por lo tanto, no se requieren verificaciones de restricciones de clave externa durante el tiempo de carga. De hecho, todas las restricciones, incluida la clave externa, deben deshabilitarse temporalmente hasta que se procese el lote.
RENDIMIENTO DE CONSULTA : si las tablas se unen en claves foráneas, tenga en cuenta el hecho de que las columnas de claves foráneas NO ESTÁN INDEXADAS (aunque la clave primaria respectiva está indexada por definición). Al indexar una clave externa, para el caso, al indexar cualquier clave, y unir tablas en indexadas ayuda a obtener mejores rendimientos, no al unir claves no indexadas con restricciones de clave externa.
Cambiando de tema , si una base de datos solo admite la visualización del sitio web / contenido de representación / etc. y registra clics, entonces una base de datos con restricciones completas en todas las tablas se elimina por completo para tales fines. Piénsalo. La mayoría de los sitios web ni siquiera usan una base de datos para tal. Para requisitos similares, donde los datos solo se registran y no se mencionan por ejemplo, use una base de datos en memoria, que no tiene restricciones. Esto no significa que no haya un modelo de datos, sí un modelo lógico, pero ningún modelo de datos físicos.