---
# System prepended metadata

title: 緩存簡介
tags: [Mybatis-緩存]

---

# 緩存簡介
###### tags: `Mybatis-緩存`

```
查詢： 連接數據庫  耗資源！
一次查詢的結果，給他暫存在一個可以直接取到的地方-->內存：緩存

我們再次查詢相同的數據的時候，直接走緩存，就不用走數據庫
```

### 1.什麼是緩存[Cache]？
* 存在內存中的臨時數據
* 將用戶經常查詢的數據放在緩存(內存)中，用戶去查詢數據就不用從磁盤上(關係型數據庫數據文件)查詢，存緩存中查詢，從而提高查詢效率，解決了高併發系統的性能問題

### 2.為什麼使用緩存
* 減少和數據庫的交互次數，減少系統開銷，提高系統效率

### 3.什麼樣的數據能使用緩存？
* 經常查詢並且不經常改變的數據【可以使用緩存】


## Mybatis緩存
* Mybatis包含一個非常強大的查詢緩存特性，它可以非常方便地定制和配置緩存，緩存可以極大的提升查詢效率
* Mybatis系統中默認定義了兩級緩存：**一級緩存**和**二級緩存**
* 默認情況下，只有一級緩存開啟(SqlSession級別的緩存，也稱為本地緩存)
* 二級緩存需要手動開啟和配置，它是基於namespace級別的緩存
* 為了提高擴展性，Mybatis定義了緩存接口Cache，我們可以通過實現Cache街口來自定義二級緩存
