一、开启region merge

# 控制 Region Merge 的 size 上限,当 Region Size 大于指定值时 PD 不会将其与相邻的 Region 合并
pd-ctl config set max-merge-region-size 20
# 控制 Region Merge 的 key 上限,当 Region key 大于指定值时 PD 不会将其与相邻的 Region 合并
pd-ctl config set max-merge-region-keys 200000
# 同时进行的 Region Merge 调度的任务,设置为 0 则关闭 Region Merge。
pd-ctl config set merge-schedule-limit 8

二、查看空region的方法

pd里记录的所有空region

# pd监控中记录的region数量
tiup ctl:v4.0.13 pd -u http://pd_ip:pd_port region check empty-region > empty-region.json
# wc -l empty-region.json # 通过对全量数据做对比

tiup ctl:v4.0.13 pd -u http://pd_ip:pd_port region scan> region_all.json

# 通过条件对比,可以发现官方对"approximate_size": 1的情况即定义为空region,approximate_size表示region的近似数据量 # 但是pd中的记录其实是存在一定的偏差,真实的空region要通过下面的sql查看

SELECT count(1) FROM INFORMATION_SCHEMA.TIKV_REGION_STATUS where APPROXIMATE_SIZE=1;

三、开启了region merge后还有大量空region的原因

创建过大量表后(包括执行 Truncate Table 操作)又清空了。此时如果开启了 split table 特性,这些空 Region 是无法合并的,此时需要调整以下参数关闭这个特性:
TiKV: 将 split-region-on-table 设为 false,该参数不支持动态修改。

方式一、

# PD:
config set key-type raw
# config set key-type txn
# 如果集群中不存在 TiDB 实例,key-type 的值为 "raw" 或 "txn"。此时,无论 enable-cross-table-merge 设置为何,PD 均可以跨表合并 Region。 #如果集群中存在 TiDB 实例,key-type 的值应当为 "table"。此时,enable-cross-table-merge 的设置决定了 PD 是否能跨表合并 Region。如果 key-type 的值为 "raw",placement rules 不生效。

方式二、

# enable-cross-table-merge 用于开启跨表 Region 的合并。当设置为 false 时,PD 不会合并不同表的 Region。该选项只在键类型为 "table" 时生效。
config set enable-cross-table-merge true

小记:

# enable-one-way-merge 用于控制是否只允许和相邻的后一个 Region 进行合并。当设置为 false 时,PD 允许与相邻的前后 Region 进行合并。设置为true只允许和相邻的后一个 Region 合并
config set enable-one-way-merge true

这是开启了跨表合并后的空region现象,还有一些点不明白的之后再补充

文章知识点与官方知识档案匹配,可进一步学习相关知识
MySQL入门技能树内置函数锁相关66708 人正在系统学习中

[转帖]TiDB-merge region相关问题的更多相关文章

  1. hbase日常运维管用命令,region管理

    1         Hbase日常运维 1.1       监控Hbase运行状况 1.1.1        操作系统 1.1.1.1 IO 群集网络IO,磁盘IO,HDFS IO IO越大说明文件读 ...

  2. Git知识总览(四) git分支管理之rebase 以及 cherry-pick相关操作

    上篇博客聊了<Git知识总览(三) 分支的创建.删除.切换.合并以及冲突解决>,本篇博客我们主要来看一下 rebase 变基相关的操作.rebase 操作和 merge 操作最终都可以达到 ...

  3. git学习------> 解决Gitlab 版本升级之后,发送 merge request 出现 http 500 的返回码错误

    今天有同事在Gitlab上发送 Merge Request的时候,直接出现如下所示的界面,提示http 500,服务器内部出错. 一.错误描述 1.1 创建新的 Merge Request 1.2 填 ...

  4. HBase Region Assign流程详解

    Hbase是kv存储,但是逻辑上我们可以把存储在hbase上的kv数据当成表,rowkey可以认为是表的主键.为了便于分布式操作,hbase会把表横向切分成一块一块的数据,而每块就是一个Region. ...

  5. MySQL Execute Plan--Index Merge特性

    Index Merge特性 在MySQL 5.5之前版本中,查询或子查询被限制在一个表只能使用一个索引(回表查询除外). 假设表TB1001上C1和C2列分别有单列索引,如对下面查询: SELECT ...

  6. Hbase运维手册(1)

    1. region情况 需要检查 1. region的数量(总数和每台regionserver上的region数) 2. region的大小 如果发现异常可以通过手动merge region和手动分配 ...

  7. [Hbase]Hbase章3 Hbase单点故障

    很长一段时间以来,一个region同一时间只能在一台RS(Region Server)中打开.如果一个region同时在多个RS上打开,就是multi-assign问题,会导致数据不一致甚至丢数据的情 ...

  8. C#对DataTable里数据筛选排序的方法

    在日常开发过程中,有一个DataTable集合,里面有很多字段,现在要求针对某一列进行排序,如果该列为数字的话,进行ASC即可实现,但是该字段类型为string,此时排序就有点不正确了 protect ...

  9. Hbase运维参考(项目)

    1 Hbase日常运维 1.1 监控Hbase运行状况 1.1.1 操作系统 1.1.1.1 IO 群集网络IO,磁盘IO,HDFS IO IO越大说明文件读写操作越多.当IO突然增加时,有可能:1. ...

  10. HBase运维基础--元数据逆向修复原理

    背景 鉴于上次一篇文章——“云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据”的读者反馈,对HBase的逆向工程比较感兴趣,并咨询如何使用相应工具进行运维等等.总的来说,就是想更深层 ...

随机推荐

  1. Next.js 开发指南 初始篇 | Next.js CLI

    基础篇.实战篇.源码篇.面试篇四大篇章带你系统掌握 Next.js!   前言 欢迎学习 Next.js!在学习具体的知识点之前,我们先来创建一个 Next.js 项目.创建了可运行的项目,才能在学习 ...

  2. Ubuntu 下建立 eclipse 启动图标,解决ADT没有菜单栏问题(转载)

    原文地址 怎么在这应用程序里边建立图标$sudo gedit /usr/share/applications/Eclipse.desktop输入以下代码 [Desktop Entry]Name=Ecl ...

  3. JNA入门(一)

    JNA入门,代码在github写得明明白白:https://github.com/java-native-access/jna/blob/master/www/GettingStarted.md 一. ...

  4. JPA复杂查询时间查询分页排序

    JPA复杂查询时间查询分页排序 JPA复杂查询时间查询分页排序,工作上用到,因为项目是jpa,记录.代码囊括了:查询条件+时间范围+分页+排序 其实我也不太想用jpa,但是他也有优点,操作可以兼容多种 ...

  5. ElasticSearch-2

    原文链接:https://gaoyubo.cn/blogs/cbe60a4d.html 一.DSL查询文档 1.1DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain S ...

  6. Implicit隐式渲染入门 SDF SphereTracing

    Implicit 何为隐式?隐式(Implicit)的是显式(explicit)的反义词. explicit可以简单理解为用网格等信息描述的几何形状,网格信息是离散的,信息量越大描述越精准.Impli ...

  7. 文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题

    文心一言 VS 讯飞星火 VS chatgpt (59)-- 算法导论6.4 3题 三.对于一个按升序排列的包含 n 个元素的有序数组 A 来说,HEAPSORT 的时间复杂度是多少?如果 A 是降序 ...

  8. 【一行代码秒上云】Serverless六步构建全栈网站

    摘要:Serverless怎么玩?听一千道一万不如亲手来实践,跟着我们以华为云Serverless实践FunctionGraph来免费体验一下六步构建全栈网站吧 前言: Serverless怎么玩?听 ...

  9. 火山引擎云原生数据仓库 ByteHouse 技术白皮书 V1.0 (Ⅴ)

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,<火山引擎云原生数据仓库 ByteHouse 技术白皮书>正式发布.白皮书简述了 ByteHou ...

  10. OpenShift 与 OpenStack:让云变得更简单

    OpenShift 与 OpenStack 都是在 2010.2011 年左右创建的,用于构建可扩展云平台的开源技术,两者都用于在混合云环境中构建可扩展系统.从历史来看,OpenStack 的存在时间 ...