{"id":14133,"date":"2024-03-15T08:31:57","date_gmt":"2024-03-15T08:31:57","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/"},"modified":"2025-08-06T04:19:41","modified_gmt":"2025-08-06T04:19:41","slug":"what-is-the-purpose-and-principle-of-mybatis-cache","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/","title":{"rendered":"MyBatis Cache Explained"},"content":{"rendered":"<p>The purpose of MyBatis caching is to improve system performance by reducing the number of database interactions and easing the burden on the database. By caching query results in memory, it can prevent repeated querying of the database, thus enhancing system response speed.<\/p>\n<p>The caching mechanism of MyBatis involves controlling cache at both the SqlSession layer and the second-level cache layer. At the SqlSession layer, MyBatis utilizes PerpetualCache to implement a HashMap-based caching model, storing query results in memory. At the second-level cache layer, MyBatis supports storing cache in external cache systems like Redis or Ehcache.<\/p>\n<p>The caching mechanism of MyBatis is based on the following principles:<\/p>\n<ol>\n<li>By default, MyBatis will create a cache for each query of each mapper, and the cache&#8217;s lifecycle is the same as the SqlSession&#8217;s lifecycle.<\/li>\n<li>In the same SqlSession, if the input parameters and SQL statements of two queries are exactly the same, the second query will directly retrieve the results from the cache without executing a database query again.<\/li>\n<li>Any modifications (such as insertions, updates, deletions) between two queries in the same SqlSession will result in clearing the mapper&#8217;s cache.<\/li>\n<\/ol>\n<p>It&#8217;s important to note that MyBatis&#8217; cache mechanism is based on object references, meaning it caches references to the queried result objects rather than copies of them. Therefore, when using MyBatis cache, it&#8217;s important to consider the mutability of the returned result objects to avoid external modifications to cached objects affecting other query results.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The purpose of MyBatis caching is to improve system performance by reducing the number of database interactions and easing the burden on the database. By caching query results in memory, it can prevent repeated querying of the database, thus enhancing system response speed. The caching mechanism of MyBatis involves controlling cache at both the SqlSession [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[19035,8384,19036,529,1956],"class_list":["post-14133","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-database-caching","tag-mybatis-cache","tag-mybatis-principles","tag-performance-optimization","tag-sql-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MyBatis Cache Explained - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Discover how MyBatis cache boosts performance by reducing database interactions and response time.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MyBatis Cache Explained\" \/>\n<meta property=\"og:description\" content=\"Discover how MyBatis cache boosts performance by reducing database interactions and response time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-15T08:31:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T04:19:41+00:00\" \/>\n<meta name=\"author\" content=\"William Carter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"William Carter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/\"},\"author\":{\"name\":\"William Carter\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\"},\"headline\":\"MyBatis Cache Explained\",\"datePublished\":\"2024-03-15T08:31:57+00:00\",\"dateModified\":\"2025-08-06T04:19:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/\"},\"wordCount\":249,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"Database caching\",\"MyBatis cache\",\"MyBatis principles\",\"Performance Optimization\",\"SQL performance\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/\",\"name\":\"MyBatis Cache Explained - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T08:31:57+00:00\",\"dateModified\":\"2025-08-06T04:19:41+00:00\",\"description\":\"Discover how MyBatis cache boosts performance by reducing database interactions and response time.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MyBatis Cache Explained\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0\",\"name\":\"William Carter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g\",\"caption\":\"William Carter\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MyBatis Cache Explained - Blog - Silicon Cloud","description":"Discover how MyBatis cache boosts performance by reducing database interactions and response time.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/","og_locale":"en_US","og_type":"article","og_title":"MyBatis Cache Explained","og_description":"Discover how MyBatis cache boosts performance by reducing database interactions and response time.","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T08:31:57+00:00","article_modified_time":"2025-08-06T04:19:41+00:00","author":"William Carter","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"William Carter","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/"},"author":{"name":"William Carter","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0"},"headline":"MyBatis Cache Explained","datePublished":"2024-03-15T08:31:57+00:00","dateModified":"2025-08-06T04:19:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/"},"wordCount":249,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["Database caching","MyBatis cache","MyBatis principles","Performance Optimization","SQL performance"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/","name":"MyBatis Cache Explained - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T08:31:57+00:00","dateModified":"2025-08-06T04:19:41+00:00","description":"Discover how MyBatis cache boosts performance by reducing database interactions and response time.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-and-principle-of-mybatis-cache\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MyBatis Cache Explained"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/f697031891aacefc4b681d139781d3c0","name":"William Carter","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1786698071dd8d74bec894b512f9e3c610c3a2a32985f67e688976cee3c8bbef?s=96&d=mm&r=g","caption":"William Carter"},"url":"https:\/\/www.silicloud.com\/blog\/author\/williamcarter\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14133","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=14133"}],"version-history":[{"count":3,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14133\/revisions"}],"predecessor-version":[{"id":158155,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14133\/revisions\/158155"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=14133"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=14133"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=14133"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}