使用系统变量 tidb_last_query_info 查询RU问题

tidb_last_query_info 是 TiDB 中用于存储上一条查询语句执行信息的系统变量。它通常用来查看上一次执行的 SQL 语句的各种信息,包括消耗的资源等。
这个变量记录的信息确实主要针对 DML(Data Manipulation Language)语句,如 INSERTUPDATEDELETE 等操作。这些操作通常涉及到对数据的修改,因此会消耗资源单元(Resource Unit,简称 RU)。
然而,对于 DQL(Data Query Language)语句,如 SELECTSHOW 等查询操作,tidb_last_query_info 可能不会记录详细的 RU 消耗信息。因为 DQL 语句通常不涉及数据的修改,所以它们不直接消耗 RU。但是,一些复杂的查询,特别是那些涉及到大量计算或资源消耗的操作(如排序、聚合等),可能会被记录在 tidb_last_query_info 中。
要查看 tidb_last_query_info 中记录的信息,可以在 TiDB 的 SQL 命令行界面中执行以下查询:
SELECT * FROM information_schema.tidb_last_query_info;
tidb_last_query_info 中的信息只在查询执行后的一段时间内有效,具体时间由系统变量 tidb_query_info_expire_seconds 控制。默认情况下,这个时间可能是几分钟,但你可以根据需要调整它。
如果想了解特定 SQL 语句的 RU 消耗,最好的方法是查看该语句的执行计划,并分析计划中各个操作的资源消耗。可以通过 TiDB 的 EXPLAIN 语句来实现。