查询metrics_summary之类系统表非常慢

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.1
  • 【问题描述】:metrics_summary 数据量600多条,执行查询非常慢,其它类似的元数据表也很慢,数据量都不大
explain select * from information_schema.metrics_summary;
+----------------+----------+------+-----------------------+---------------+
| id             | estRows  | task | access object         | operator info |
+----------------+----------+------+-----------------------+---------------+
| MemTableScan_4 | 10000.00 | root | table:METRICS_SUMMARY |               |
+----------------+----------+------+-----------------------+---------------+
1 row in set (0.01 sec)

mysql> select count(*) from information_schema.metrics_summary;
+----------+
| count(*) |
+----------+
|      612 |
+----------+
1 row in set (10.13 sec)

你好,此类 metrics 内存表的数据是通过 prometheus 现拉去数据, 10s 以内或多一点均为预期。

既然是保存时间段内快照数据,为啥不直接设为MEMORY表呢

tidb 的系统表均为内存表,时间主要消耗在从 prometheus 拉去数据上。其他内存表访问还是比较快的。

好的 谢谢答疑

ok,有问题欢迎开新帖继续讨论