# 缓存表

+ 表中的数据量不大
+ 最适合用于一次写入多次读取（`WORM`）表格

![`smart`](HotSubtableCache_aa_001_20220509.png)

------------------------------------------------------------------------
TiDB在v6.0.0版本中引入了缓存表功能，这个功能适用于频繁访问且很少修改的热点小表。也就是说，整个表的数据会被加载到TiDB服务器的内存中，然后可以直接从内存中获取表数据，从而避免从TiKV节点获取表数据，从而提高读取性能。

我们可以使用以下方法来缓存表：

```
CREATE TABLE users (
    id BIGINT,
    name VARCHAR(100),
    PRIMARY KEY(id)
);

ALTER TABLE users CACHE;
```

缓存表功能适用于具有以下特征的表：
- 表中的数据量很小
- 几乎只读表
- 这张表被频繁访问，预期会有更好的读取性能。

目前，TiDB 对每个缓存表的大小有限制，最大为 64 MB。如果表大小超过 64 MB，`ALTER TABLE t CACHE` 将会失败。