Optimizar el diseño lógico
El nivel lógico trata sobre la estructura de la consulta y las propias tablas. Trate de maximizar esto primero. El objetivo es acceder a la menor cantidad de datos posible en el nivel lógico.
- Tenga las consultas SQL más eficientes
- Diseñe un esquema lógico que admita la necesidad de la aplicación (por ejemplo, tipo de columnas, etc.)
- Compensación de diseño para admitir algunos casos de uso mejor que otros
- Restricciones relacionales
- Normalización
Optimizar el diseño físico
El nivel físico se ocupa de consideraciones no lógicas, como el tipo de índices, los parámetros de las tablas, etc. El objetivo es optimizar el IO, que siempre es el cuello de botella. Ajuste cada tabla para que se ajuste a sus necesidades. La tabla pequeña se puede cargar de forma permanente en la caché de DBMS, la tabla con una tasa de escritura baja puede tener configuraciones diferentes que la tabla con una tasa de actualización alta para ocupar menos espacio en el disco, etc. Dependiendo de las consultas, se pueden usar diferentes índices, etc. datos desnormalizados de forma transparente con vistas materializadas, etc.
- Parámetros de las tablas (tamaño de asignación, etc.)
- Índices (combinados, tipos, etc.)
- Parámetros de todo el sistema (tamaño de caché, etc.)
- Particionamiento
- Desnormalización
Intente primero mejorar el diseño lógico, luego el diseño físico. (Sin embargo, el límite entre ambos es vago, por lo que podemos discutir sobre mi categorización).
Optimizar el mantenimiento
La base de datos debe funcionar correctamente para mantenerse lo más eficiente posible. Esto incluye algunas tareas de mantenimiento que pueden tener un impacto en el rendimiento, por ejemplo,
- Mantenga las estadísticas actualizadas
- Vuelva a secuenciar las tablas críticas periódicamente
- Mantenimiento del disco
- Todas las cosas del sistema para tener un servidor genial