La lógica de negocio / normas - procesamiento en la base de datos o en la memoria

StackOverflow https://stackoverflow.com/questions/1669862

  •  13-09-2019
  •  | 
  •  

Pregunta

motivo de mi gran abundancia de orgullo, estoy trabajando en un programa que procesar algunos de los datos mejor que el actual sistema que estamos utilizando actualmente. Mi pregunta es cuando las reglas de negocio de aplicación (es decir, si este dato coincide con este patrón enviar a este que) es que las mejores prácticas a:

simplemente cargar todas las reglas en la memoria desde una base de datos cuando se inicia el programa

positivo: muy rápido

negativo: este programa tendría que adjudicar de reglas para que pudiera ser un cerdo de la memoria

tener todas las reglas en una base de datos y permitir que el juego por hacer en la base de datos

positivo: no usar una tonelada de memoria

negativos: un montón de las llamadas bases de datos

tener una bandera en la memoria que se llame a una regla específica en la base de datos.

positivo: no una tonelada de memoria

negativo: todavía una gran cantidad de llamadas de base de datos

Cualquier pensamiento

¿Fue útil?

Solución

Se olvidó del híbrido de los dos extremos - una memoria caché inteligente (más lista que todo en la memoria).

Inicializar el caché sin reglas (o unos pocos de los más populares).
La aplicación solicita una regla de la caché.
Si existe en la memoria caché, devolverlo.
Si no es así, cargarlo desde la base de datos, almacenar en caché, y devolverlo al usuario.

Otros consejos

Al igual que con todo lo relacionado con el rendimiento, hay que probar las opciones y medir su rendimiento. Es muy difícil saber de antemano cuál funciona mejor para usted.

Una de las últimas tendencias es bases de datos en memoria. Haciendo BI y análisis de la base de datos que posee la totalidad del conjunto de datos necesarios en la memoria. Estamos hablando de gigabytes de memoria RAM.

Se podría considerar esta opción sabiendo que no es más exótico. RAM es barato en estos días. Tal vez va a trabajar para usted. Es necesario para probarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top