TiDB 5.0空间使用及性能调优

3节点(3tidb,3tikv,3pd)
数据库里只建了一个表,1千多万行记录,但是Dashboard的disks里面看到每个节点用了20多GB

有一个space_placeholder_file占用10GB,
-rw-r–r--. 1 tidb tidb 10562095104 Apr 15 10:05 space_placeholder_file

db里的文件总共1.3GB
1310880 .
但是有很多log和sst在一起:
-rw-r–r--. 1 tidb tidb 6218390 Apr 16 07:27 000473.sst
-rw-r–r--. 1 tidb tidb 41415760 Apr 16 07:28 000474.log
-rw-r–r--. 1 tidb tidb 41075658 Apr 16 07:29 000477.log
-rw-r–r--. 1 tidb tidb 40837833 Apr 16 07:29 000480.log
-rw-r–r--. 1 tidb tidb 8182292 Apr 16 07:30 000483.log
-rw-r–r--. 1 tidb tidb 32097417 Apr 16 07:30 000486.log
-rw-r–r--. 1 tidb tidb 94793872 Apr 16 07:30 000487.sst
-rw-r–r--. 1 tidb tidb 40924008 Apr 16 07:31 000488.log
-rw-r–r--. 1 tidb tidb 41041510 Apr 16 07:31 000491.log
-rw-r–r--. 1 tidb tidb 40851079 Apr 16 07:32 000494.log
-rw-r–r--. 1 tidb tidb 40955277 Apr 16 07:33 000497.log
-rw-r–r--. 1 tidb tidb 36040868 Apr 16 07:33 000500.log
-rw-r–r--. 1 tidb tidb 4936041 Apr 16 07:33 000503.log
-rw-r–r--. 1 tidb tidb 94770049 Apr 16 07:33 000504.sst
-rw-r–r--. 1 tidb tidb 40795259 Apr 16 07:34 000505.log
-rw-r–r--. 1 tidb tidb 26183014 Apr 16 07:35 000508.log
-rw-r–r--. 1 tidb tidb 132940 Apr 16 08:41 000510.log

问题:
1)我怎么知道某一个表具体占用多大空间?
2)全表扫描大概22秒,count(distinct)需要1分多,这个是正常的吗?
如果要优化该调整哪些参数?

mysql> select count() from shistory;
±---------+
| count(
) |
±---------+
| 11104830 |
±---------+
1 row in set (22.36 sec)

mysql> select count(distinct code) from shistory;
±---------------------+
| count(distinct code) |
±---------------------+
| 4292 |
±---------------------+
1 row in set (1 min 23.89 sec)
3)现在是3个KV3个DB3个pd,我启动3个以上进程就会开始卡,每个节点有8个CPU16GB内存,有没有参数可以调整,比如给KV使用多少内存,多少CPU?

  1. space_placeholder_file 参考文档 https://docs.pingcap.com/zh/tidb/stable/tikv-configuration-file#reserve-space
    可以调整参数,默认应该是 store 大小 * 5%
    image
  2. distinct 试试这个参数 https://docs.pingcap.com/zh/tidb/stable/system-variables#tidb_opt_distinct_agg_push_down