在巡检时发现磁盘空间到达报警阈值,原因是空 region 过多,已经进行了必要的参数设定来减少空region,但是发现磁盘还是没有收缩,使用查询语句发现 TIKV_REGION_STATUS 的 table id 有大量的 NULL,感觉没有生效,请问这个 NULL 会实际占用磁盘空间吗? 以及如何清理呢?
mysql> SELECT
-> db_name,
-> table_name,
-> ROUND(SUM(total_size / cnt), 2) Approximate_Size,
-> ROUND(SUM(total_size / cnt / (SELECT
-> ROUND(AVG(value), 2)
-> FROM
-> METRICS_SCHEMA.store_size_amplification
-> WHERE
-> value > 0)),
-> 2) Disk_Size
-> FROM
-> (SELECT
-> db_name,
-> table_name,
-> region_id,
-> SUM(Approximate_Size) total_size,
-> COUNT(*) cnt
-> FROM
-> information_schema.TIKV_REGION_STATUS
-> GROUP BY db_name , table_name , region_id) tabinfo
-> GROUP BY db_name , table_name order by Disk_Size;
+--------------------+---------------------------------------------------+------------------+------------+
| db_name | table_name | Approximate_Size | Disk_Size |
+--------------------+---------------------------------------------------+------------------+------------+
....
| NULL | NULL | 15716867.00 | 1866611.28 |
参数设定
store limit all 100
“enable-placement-rules”: “false”,
pd-server. “key-type”: “table”
“enable-cross-table-merge”: “true”,
tikv coprocessor.split-region-on-table false
还有我也检查了下 gc worker 也是正常的