一、开启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. VSCode C++开发环境配置:CMake 调试配置 launch.json

    相关内容 VSCode C++开发环境配置: LLVM clang clangd 安装 cmake sudo apt install cmake 安装 VSCode 插件 CMake CMakeToo ...

  2. 第八部分_Shell脚本之综合案例实训

    综合案例 1. 实战案例1 ㈠ 具体需求 写一个脚本,将跳板机上yunwei用户的公钥推送到局域网内可以ping通的所有机器上 说明:主机和密码文件已经提供 10.1.1.1:123456 10.1. ...

  3. 教你用Python自制拼图小游戏,轻松搞定熊孩子

    摘要:本文主要为大家详细介绍了python实现拼图小游戏,文中还有示例代码介绍,感兴趣的小伙伴们可以参考一下. 开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Pyth ...

  4. 基于lio-sam框架,教你如何进行回环检测及位姿计算

    摘要:本篇主要解析lio-sam框架下,是如何进行回环检测及位姿计算的. 本文分享自华为云社区<lio-sam框架:回环检测及位姿计算>,作者:月照银海似蛟龙 . 前言 图优化本身有成形的 ...

  5. SpringBoot java 一个接口,多个实现,客户定制化

    产品定制化时,在不同的客户中会有不同的需求,这时候会产生,一个接口,多个实现 SpringBoot ,如果发现有多实现时,会报如下错误 Consider marking one of the bean ...

  6. Consider defining a bean of type 'org.springframework.security.authentication.AuthenticationManager' in your configuration.

    Consider defining a bean of type 'org.springframework.security.authentication.AuthenticationManager' ...

  7. Web 目录文件浏览配置

    IIS 配置目录浏览 在目录下 Web.config 下添加一句: <directoryBrowse enabled="true"/> <?xml version ...

  8. 日常问题杂记-updating

    python3新式类的解析顺序-C3算法由来 - mro-resolution-order canvas文本绘制 - 参考链接 高性能渲染大批量数据 - 参考链接 virtualized list - ...

  9. ChatGpt windows+mac os+linux三平台桌面版下载

    1 前言 ChatGPT这段时间还是挺火的,有不了解的小伙伴可以看看这篇ChatGPT为何打响AI新时代的礼炮,一路火花带闪电[1],能简单的了解: 什么是ChatGPT ChatGPT为什么这么火 ...

  10. 将nginx交给service管理

    #!/bin/bash # chkconfig: 2345 99 99 prot=80 nginx=/usr/local/nginx/sbin/nginx check(){ ! $nginx -tq ...