GBase 8a在执行时,会使用临时表缓冲中间结果,比如根据hash列临时重分布的表,各个节点的汇总的临时表。
文件名样例
不同数据库版本,名字不同,但从前缀还是能区分是复制表还是分布表。绝大部分情况下,有这个足以。其余部分除了nX表示不同节点分片外,更多的是为了生成一个不重复的,唯一的临时表名字。
临时复制表
仅有_tmp 前缀时,表示这是一个普通临时表(复制表)
_tmp_n1_t11_1_405747_0x45a002a0_0x12eebd68
_tmp_1_15_t11_1_1607409052_s
其中
15 是sessionID
1607409052 是时间戳(秒)
临时分布表
_tmp_rht 前缀表示这是一个动态重分布临时表。
_tmp_rht_n1_t12_1_356508_0x45a00ad0_0x12eebd68
_tmp_rht_169126060_1358717_t838333_4_1605739381_s_n1
n1:发起这条查询的节点后缀,这里表示此查询是从 n1 节点发起的
t12: 查询计数,gcluster server 启动后,执行的第 n 条查询,n 从 1 开始。
1:该查询产生的第 m 个临时表名,m 从 1 开始(因为查询会分解为多步执行,因此可能会产生多个临时表)
356508: 产生临时表名时,系统时间的微秒部分
0x45a00ad0:产生临时表名时,时间结构的内存地址
0x12eebd68:产生临时表名的 thd 对象的内存地址