Heim  >  Artikel  >  Java  >  Was ist der Unterschied zwischen dem First-Level-Cache und dem Second-Level-Cache von Mybatis?

Was ist der Unterschied zwischen dem First-Level-Cache und dem Second-Level-Cache von Mybatis?

coldplay.xixi
coldplay.xixiOriginal
2021-01-22 10:37:3547942Durchsuche

Der Unterschied zwischen dem Cache der ersten Ebene und dem Cache der zweiten Ebene von Mybatis: 1. Der Cache der ersten Ebene von Mybatis bezieht sich auf SQLSession. Der Umfang des Caches der ersten Ebene ist SQlSession, der den Cache der ersten Ebene aktiviert standardmäßig; 2. Mybatis aktiviert den Second-Level-Cache nicht.

Was ist der Unterschied zwischen dem First-Level-Cache und dem Second-Level-Cache von Mybatis?

Die Betriebsumgebung dieses Artikels: Windows 7-System, MyBatis Version 3.5.6, Dell G3-Computer.

Der Unterschied zwischen dem First-Level-Cache und dem Second-Level-Cache von Mybatis:

1) Der First-Level-Cache von Mybatis bezieht sich auf SQLSession Standardmäßig Cache der ersten Ebene. In derselben SqlSession wird beim ersten Ausführen derselben SQL-Abfrage die Datenbank abgefragt und in den Cache geschrieben, und beim zweiten Mal wird sie direkt aus dem Cache abgerufen. Wenn SQL ausgeführt wird und zwischen den beiden Abfragen Hinzufügungs-, Lösch- und Änderungsvorgänge stattfinden, wird der SQLSession-Cache geleert.

Bei jeder Abfrage wird zunächst im Cache gesucht. Wenn sie nicht gefunden werden kann, wird die Datenbank abgefragt und die Ergebnisse dann in den Cache geschrieben. Der interne Cache von Mybatis verwendet eine HashMap und der Schlüssel ist Hashcode + StatementId + SQL-Anweisung. Wert ist das Java-Objekt, das der Abfrageergebnismenge zugeordnet ist. Nachdem SqlSession Einfüge-, Aktualisierungs-, Lösch- und andere Commit-Vorgänge ausgeführt hat, wird der SQLSession-Cache geleert.

2) Second-Level-Cache Der Second-Level-Cache befindet sich auf der Mapper-Ebene. Mybatis aktiviert den Second-Level-Cache standardmäßig nicht. Wenn die SQL unter dem Mapper zum ersten Mal aufgerufen wird, um die Benutzerinformationen abzufragen, werden die abgefragten Informationen im Cache-Bereich der zweiten Ebene gespeichert, der dem Mapper entspricht. Beim zweiten Aufruf der Mapper-Zuordnungsdatei unter dem Namespace wird dasselbe SQL zum Abfragen von Benutzerinformationen verwendet und die Ergebnisse werden aus dem entsprechenden Cache der zweiten Ebene abgerufen.

Was ist der Unterschied zwischen dem First-Level-Cache und dem Second-Level-Cache von Mybatis?

Verwandte Empfehlungen: Java-Einführungs-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen dem First-Level-Cache und dem Second-Level-Cache von Mybatis?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn