# Mysql Views und Hibernate Caching



## marco81 (10. Mai 2021)

Hallo,

gibt es technisch irgendwelche Gründe in MYSQL auf Views zu verzichten, wenn Java und Hibernate eingesetzt werden? 

Viele Grüße
Marco


----------



## mihe7 (10. Mai 2021)

Prinzipiell ist das kein Problem, wenn GROUP BY verwendet wird, hat MySQL ggf. ein Problem mit der Optimierung der Anfrage.


----------



## marco81 (10. Mai 2021)

Ein Kollege äußerte den Verdacht, dass es bezüglich Views zu Caching Problemen kommen könnte. Wenn sich die Daten in einer der Tabellen worauf der sich ein View basiert ändern. Ich glaube nicht daran, weil im Cache ein Zeitstempel hinterlegt wird. Dieser sollte auch für Views dafür sorge tragen, dass die gecachten Daten invalidiert werden, wenn sie veraltet sind. Weiß dazu jemand mehr?


----------



## mihe7 (10. Mai 2021)

Was die DB betrifft: in den 5er Versionen gab es einen Query-Cache, der zu den Anfragen gleich die Daten gecached hat. Den hat man wegen Inkonsistenzen entfernt, wobei es da um MySQL-Cluster ging, wenn ich mich recht entsinne (musst Du mal nach query cache googeln).

Was den Hibernate-Cache (bzw. die Caches) betrifft: der bekommt natürlich nicht mit, wenn sich was in der DB ändert. Das wiederum hat nix mit Views zu tun.


----------



## mihe7 (10. Mai 2021)

Vielleicht noch als kleine Ergänzung: wir haben seit mehr als 10 Jahren MySQL-DBs mit Views im Einsatz, die auch per JPA angebunden werden (Java EE). Bis auf die fehlende Optimierung in einigen Fällen könnte ich nicht behaupten, dass wir jemals ein Problem gehabt hätten. Den 2nd-Level-Cache auf JPA-Seite haben wir aktiviert und einen Service, mit dem sich dieser löschen lässt. Dadurch bekommen wir dann in der Regel auch die aktuellen Daten in die Anwendung.


----------

