一、支持版本
内核版本 MySQL 8.0 20210830 及以上
二、适用场景
对于线上短小点查询较多,且使用 prepare statement 模式时,应用有性能上的提升。具体性能提升的幅度根据线上业务而定。
三、性能影响
·对于点查(UK&PK)的 SQL,延迟性能提升20% – 30%,吞吐性能提升20% – 30%(sysbench 中的 point_select.lua 测试)。
·对于内存开销,打开计划缓存开关的情况下,内存使用较未打开时将有所提升。
四、使用说明
新增 cdb_plan_cache 开关控制是否打开计划缓存,新增 cdb_plan_cache_stats 开关用于观察缓存命中状态,以上参数为 tencentroot 级别。
| 参数名 | 状态 | 类型 | 默认 | 参数值范围 | 说明 |
| cdb_plan_cache | yes | bool | OFF | ON/OFF | 功能开关,是否打开计划缓存 |
注意:说明:
注意:cdb_plan_cache_stats 参数开关开启后,才可以通过 show cdb_plan_cache_stat 命令查看相关数据,如需开启请 提交工单。
show cdb_plan_cache_stat 命令用于查看计划缓存命中状态,字段意思如下:
| 字段名 | 说明 |
| sql | SQL 语句,这里是带有?的 SQL 语句,代表此条 SQL 的执行计划已经被缓存 |
| mode | SQL 缓存的模式,现只支持 prepare 模式 |
| hit | 本会话命中的次数 |
注意:当 cdb_plan_cache_stats 参数开关开启时,相当于信息记录,将会对性能产生影响。
五、相关状态说明
在通过 show profile 查看 SQL 执行各阶段状态时,当执行 SQL 命中计划缓存,optimizing、statistics 和 preparing 状态将被省略。