当前位置:网站首页>Stale Read 功能的使用场景
Stale Read 功能的使用场景
2022-07-21 23:18:00 【添香小铺】
本文档介绍 Stale Read 的使用场景。Stale Read 是一种读取历史数据版本的机制,读取 TiDB 中存储的历史数据版本。通过 Stale Read 功能,你能从指定时间点或时间范围内读取对应的历史数据,从而避免数据同步带来延迟。当使用 Stale Read 时,TiDB 默认会随机选择一个副本来读取数据,因此能利用所有副本。如果你的应用程序不能容忍读到非实时的数据,请勿使用 Stale Read,否则读到的数据可能不是最新成功写入的数据。
场景描述
场景一:如果一个事务仅涉及只读操作,并且一定程度上可容忍牺牲实时性,你可以使用 Stale Read 功能来读取历史数据。由于牺牲了一定的实时性,使用 Stale Read 后,TiDB 可以让请求分发到任一个副本上,使得查询的执行获得更大的吞吐量。特别是在一些小表的查询场景中,如果使用了强一致性读,Leader 可能集中在某一个存储节点上,导致查询压力集中在该节点,成为整个查询的瓶颈。通过 Stale Read,可以提升了查询整体的吞吐能力,从而显著提升查询性能。
场景二:在部分跨数据中心部署的场景中,如果使用了强一致性的 Follower 读,为了读到的数据与 Leader 上的数据一致,会产生跨数据中心获取
Readindex
来校验的请求,导致整体查询的访问延迟增加。通过使用 Stale Read 功能,可以牺牲一定的实时性,就近访问对应数据所在当前中心的副本,避免跨数据中心的网络延迟,降低整体查询的访问延迟。详情参考在三数据中心下就近读取数据。
使用方法
TiDB 提供语句级别与会话级别的 Stale Read 使用方式,具体使用方法如下:
- 语句级别:
- 指定一个精确的时间点(推荐):如需 TiDB 读取一个时间点上保证全局事务记录一致性的数据并且不破坏隔离级别,你可以指定这个时间点对应的时间戳。要使用该方式,请参阅 AS OF TIMESTAMP 语法文档。
- 指定时间范围:如需 TiDB 读取在一个时间范围内尽可能新的数据并且不破坏隔离级别,你可以指定一个时间范围。在指定时间范围内,TiDB 会选择一个合适的时间戳,该时间戳能保证所访问的副本上不存在开始于这个时间戳之前且还没有提交的相关事务,即能保证在所访问的可用副本上可执行读取操作而且不会被阻塞。要使用该方式,请参阅 AS OF TIMESTAMP 语法文档和该文档中 TIDB_BOUNDED_STALENESS 函数部分的介绍。
- 会话级别:
- 指定时间范围:在会话级别中,如需 TiDB 在后续的查询中读取一个时间范围内尽可能新的数据并且不破坏隔离级别,你可以通过设置一个 session 变量
tidb_read_staleness
来指定一个时间范围。要使用该方式,请参阅通过系统变量 tidb_read_staleness 读取历史数据。
- 指定时间范围:在会话级别中,如需 TiDB 在后续的查询中读取一个时间范围内尽可能新的数据并且不破坏隔离级别,你可以通过设置一个 session 变量
边栏推荐
- 2022/07/21 --- maximum value of sliding window;
- [mysql] basic database operations
- leetcode-386:字典序排数
- Addition, deletion, query and modification of [mysql] table (basic)
- The LAAS solution of elephant swap has risen rapidly and built a new defi2.0 protocol
- 617. 合并二叉树
- Privacy-Preserving Generative Deep Neural Networks Support Clinical Data Sharing
- 【PostgreSQL 15】PostgreSQL 15对UNIQUE和NULL的改进
- 自动化测试简历编写应该注意哪方面?有哪些技巧?
- Simple crud of SSM
猜你喜欢
自动化设备制造行业常见管理难题及解决方案
leetcode-814:二叉树剪枝
leetcode-6118:最小差值平方和
leetcode-zj-future03:快递中转站选址
leetcode-6116:计算布尔二叉树的值
直播回顾| Apache Pulsar Meetup 精彩回放(含 PPT 下载)
One bite of Stream(8)
(iclr-2021) an image is equivalent to 16x16 words: a transformer for large-scale image recognition
AMBA 2 AHB、AMBA 3 AHB(AHB_Lite)和AMBA 5 AHB协议比较
Leetcode-zj-future03: location of express transfer station
随机推荐
Common life cycle of uniapp
224. 基本计算器-递归法
leetcode-1260:二维网格迁移
小知识点随笔记
解析云原生消息流系统 Apache Pulsar 能力及场景
Easy to use task queue beanstalkd
leetcode-735:行星碰撞
Leetcode - zj - future04: distribution des marchandises en magasin
Deep understanding of perfect hash
[MdSQL]表的增删查改(进阶)
PCBA design of body fat scale
2022 ranking list of database audit products - must see!
2022/07/18------顺时针打印矩阵
(iccv-2021) transfeid: Target Recognition Based on transformer
ideal关于 log显示问号且双击无法打不开的解决方法
leetcode-2337:移动片段得到字符串
Mysql8 stored procedure generates calendar table and exception handling
2022/07/20--- convert string to integer; Maximum value of sliding window
leetcode-6116:计算布尔二叉树的值
Talk about the top 10 mistakes often made in implementing data governance