3 Stimmen

Hibernate-Zweite-Ebene-Cache und Eins-zu-Eins-Beziehung

Ich habe eine Entität, die ich gerne im 2nd-Level-Cache zwischenspeichern möchte, aber sie wird häufig aktualisiert (über Hibernate), was sie zu einem schlechten Kandidaten für den 2nd-Level-Cache macht.

Allerdings werden nur 2 Felder häufig geändert und die anderen Spalten werden häufig gelesen und sind ziemlich statisch.

Gibt es einen Vorteil darin, diese sich häufig ändernden Felder in eine andere Tabelle zu verschieben und eine eins-zu-eins-Beziehung mit dieser neuen Entität zu erstellen? Auf diese Weise könnte ich die originale Entität im Cache speichern, jetzt da die Spalten entfernt wurden, und die neue Entität nicht im Cache speichern müssen. Oder könnte jeder gewonnene Vorteil durch häufige SELECT-Aufrufe verloren gehen?

Ich weiß, dass ich meine eigene Analyse durchführen muss, um sicher zu gehen, aber ich wollte nachsehen, ob ich überhaupt auf dem richtigen/sinnvollen Weg bin, um anzufangen.

0voto

Ralph Punkte 114913

Wenn Sie eine Lazy-Loading-Verbindung zwischen Ihrem Hauptobjekt und dem externalisierten Teil verwenden und den externen Teil nicht sehr oft benötigen, könnte es hilfreich sein.

Wenn Sie den externen Teil sehr häufig benötigen, würde es nicht helfen, weil Sie sowieso immer auf die Datenbank zugreifen müssen. Eine Ausnahme wäre: wenn Ihr Hauptobjekt sehr groß ist und Ihre Datenbankverbindung sehr langsam ist.

Aber zumindest haben Sie recht: Sie müssen es selbst testen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X