当前位置:网站首页>下推计算结果缓存
下推计算结果缓存
2022-07-17 14:46:00 【添香小铺】
TiDB 从 4.0 起支持下推计算结果缓存(即 Coprocessor Cache 功能)。开启该功能后,将在 TiDB 实例侧缓存下推给 TiKV 计算的结果,在部分场景下起到加速效果。
配置
Coprocessor Cache 的配置均位于 TiDB 的 tikv-client.copr-cache
配置项中。Coprocessor 的具体开启和配置方法,见 TiDB 配置文件描述。
特性说明
所有 SQL 在单个 TiDB 实例上的首次执行都不会被缓存。
缓存仅存储在 TiDB 内存中,TiDB 重启后缓存会失效。
不同 TiDB 实例之间不共享缓存。
缓存的是下推计算结果,即使缓存命中,后续仍有 TiDB 计算。
缓存以 Region 为单位。对 Region 的写入会导致涉及该 Region 的缓存失效。基于此原因,该功能主要会对很少变更的数据有效果。
下推计算请求相同时,缓存会被命中。通常在以下场景下,下推计算的请求是相同或部分相同的:
SQL 语句完全一致,例如重复执行相同的 SQL 语句。
该场景下所有下推计算的请求都是一致的,所有请求都能利用上下推计算缓存。
SQL 语句包含一个变化的条件,其他部分一致,变化的条件是表主键或分区主键。
该场景下一部分下推计算的请求会与之前出现过的一致,部分请求能利用上下推计算结果缓存。
SQL 语句包含多个变化的条件,其他部分一致,变化的条件完全匹配一个复合索引列。
该场景下一部分下推计算的请求会与之前出现过的一致,部分请求能利用上下推计算结果缓存。
该功能对用户透明,开启和关闭都不影响计算结果,仅影响 SQL 执行时间。
检验缓存效果
可以通过执行 EXPLAIN ANALYZE
或查看 Grafana 监控面板来检查 Coprocessor 的缓存效果。
使用 EXPLAIN ANALYZE
用户可以通过 EXPLAIN ANALYZE 语句查看读表算子中的缓存命中率,示例如下:
EXPLAIN ANALYZE SELECT * FROM t USE INDEX(a); +-------------------------------+-----------+---------+-----------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+-----------------------+------+ | id | estRows | actRows | task | access object | execution info | operator info | memory | disk | +-------------------------------+-----------+---------+-----------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+-----------------------+------+ | IndexLookUp_6 | 262400.00 | 262400 | root | | time:620.513742ms, loops:258, cop_task: {num: 4, max: 5.530817ms, min: 1.51829ms, avg: 2.70883ms, p95: 5.530817ms, max_proc_keys: 2480, p95_proc_keys: 2480, tot_proc: 1ms, tot_wait: 1ms, rpc_num: 4, rpc_time: 10.816328ms, copr_cache_hit_rate: 0.75} | | 6.685169219970703 MB | N/A | | ├─IndexFullScan_4(Build) | 262400.00 | 262400 | cop[tikv] | table:t, index:a(a, c) | proc max:93ms, min:1ms, p80:93ms, p95:93ms, iters:275, tasks:4 | keep order:false, stats:pseudo | 1.7549400329589844 MB | N/A | | └─TableRowIDScan_5(Probe) | 262400.00 | 0 | cop[tikv] | table:t | time:0ns, loops:0 | keep order:false, stats:pseudo | N/A | N/A | +-------------------------------+-----------+---------+-----------+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+--------------------------------+-----------------------+------+ 3 rows in set (0.62 sec)
执行结果的 execution info
列有 copr_cache_hit_ratio
信息,表示下推计算结果缓存的命中率。以上示例的 0.75
表示命中率大约是 75%。
查看 Grafana 监控面板
在 Grafana 监控中,tidb
命名空间下 distsql
子系统中可见 copr-cache 面板,该面板监控整个集群中下推计算结果缓存的命中次数、未命中次数和缓存丢弃次数。
边栏推荐
- QT two overloaded qlistwidget control objects implement selectitem drag drag
- Play with the one-stop scheme of cann target detection and recognition
- Dream CMS Front Office Search SQL Injection
- Ppde Q2 welcome | welcome 22 AI developers to join the propeller developer technical expert program!
- Mysql 自增id、uuid与雪花id
- Huawei machine test: Message decompression
- 8.固定收益投资
- 设置cmd命令提示符窗口的界面语言为英文
- Hello JSON Schema
- 委派双亲之类加载器
猜你喜欢
Leetcode 1304. 和为零的 N 个不同整数
性能优化之@Contended减少伪共享
Four methods of traversing key value in map
Leetcode 1328. Destroy palindrome string (yes, solved)
Deep Learning for Generic Object Detection: A Survey-论文阅读笔记
SPI服务发现机制
Tire Defect Detection Using Fully Convolutional Network-论文阅读笔记
常见分布式锁介绍
466-82(3、146、215)
Unity dropdown (editable, inputable) drop-down selection box with Text Association
随机推荐
Cmake常用命令(五)
Introduction of database lock, shared with InnoDB, exclusive lock
Introduction to the universal theme system of SAP appgyver
03-2、
The basic establishment of the sequence table and the related operations of adding, deleting, modifying and querying (the sequence table described in C language)
Huawei machine test: Message decompression
开发那些事儿:如何解决RK芯片视频处理编解码耗时很长的问题?
function/symbol ‘pango_ context_ set_ round_ glyph_ positions‘ not found in library ‘libpango-1.0. so. 0‘x
Discussion on Euler angle solution of rocket large maneuvering motion
[PostgreSQL] PostgreSQL 15 optimizes distinct
每日刷题记录 (二十六)
梦想CMS 前台搜索SQL注入
function/symbol ‘pango_context_set_round_glyph_positions‘ not found in library ‘libpango-1.0.so.0‘x
A summary of C language pointer
To build agile teams, these methods are indispensable
翻墙后看什么?最热门的国外网站——翻墙网址导航
JVM hook hooks function
Dream CMS Front Office Search SQL Injection
传输层 -------- TCP(一)
A fastandrobust convolutionalneuralnetwork-based defect detection model inproductqualitycontrol-阅读笔记