tidb 如何查询某一台的数据量

现在tikv做了集群化部署,比如我部署了4台,tikv1,tikv2,tikv3,tikv4,现在我往表test 里面插入1亿条数据,我先知道tikv1服务器上有多少数据。如何查询,可以通过sql查询出来吗?

监控看下 tikv detail 的空间使用量不就好了么 看看增加多少
不行就看系统表中的预估值,和 MySQL 查法差不多 不过是个估值。

1 个赞

可以到TiKV的grafana 监控面板里查看每个节点的数据量、已用空间、剩余空间、每个store的leader和regions 数量等

tikv 对与数据的分布式储存,有两种方式:Hash,Range

Hash:按照 Key做Hash,根据Hash值选择对应的存储节点

Range:按照Key分Range,某一段连续的 Key 都保存在一个存储节点上

Raft协议通过Raft共识算法保证数据的分布式储存和数据的一致性,同时仅可能,将数据均衡的分布在集群的所有节点中

翻了翻我的笔记本,不知道这个还能用不
SELECT TABLE_SCHEMA, TABLE_NAME, TABLE_ROWS
FROM information_schema.tables
WHERE TABLE_SCHEMA = ‘your_database_name’ AND TABLE_NAME = ‘test’;

你这个也查不到tikv数据量

select a.db_name,a.table_name,b.store_id,count(a.region_id),sum(a.APPROXIMATE_SIZE) from tikv_region_status a ,TIKV_REGION_PEERS b
where a.region_id=b.region_id
and a.db_name=‘’
and a.table_name=‘’
group by a.db_name,a.table_name,b.store_id;
是想查某张表对应在哪个tikv节点有多少数据吧

1 个赞

这个不错,试下

TiKV-Details 面板 -》 Cluster

  • Store size:每个 TiKV 实例的使用的存储空间的大小
  • Available size:每个 TiKV 实例的可用的存储空间的大小
  • Capacity size:每个 TiKV 实例的存储容量的大小
  • leader:每个 TiKV 实例 leader 的个数
  • Region:每个 TiKV 实例 Region 的个数
1 个赞

应该只能查数据大小,不能查哪条记录在哪个tikv节点上吧

https://docs.pingcap.com/zh/tidb/stable/manage-cluster-faq#如何预估-tidb-中一张表的大小 把 sql 稍微改一下试试

可以查记录位置,如果主键是int或者bigint很方便,show table xxx regions能看到数据在哪个region上