南大通用GBase 8a中间gctmpdb临时表名的命名规则

GBase 8a在执行时,会使用临时表缓冲中间结果,比如根据hash列临时重分布的表,各个节点的汇总的临时表。

文件名样例

不同数据库版本,名字不同,但从前缀还是能区分是复制表还是分布表。绝大部分情况下,有这个足以。其余部分除了nX表示不同节点分片外,更多的是为了生成一个不重复的,唯一的临时表名字。

临时复制表

仅有_tmp 前缀时,表示这是一个普通临时表(复制表)

_tmp_1_15_t11_1_1607409052_s

其中

  • 1:估计是nodeid,复制表,不区分
  • 15 是sessionID
  • t11:是累计创建的第11个
  • 1:本SQL创建的第几个表
  • 1607409052 是时间戳(秒)

临时分布表

_tmp_rht 前缀表示这是一个动态重分布临时表。

_tmp_rht_169126060_1358717_t838333_4_1605739381_s_n1
  • 169126060: 第一个数字,节点的nodeid
  • 1358717:第二个数字,连接节点gcluster的sessionid
  • t838333:第三个数字,t后面的,表示顺序号,会不断的增大。
  • 4:第四个数字,表示本SQL生成的第几个临时表。
  • s:我还不知道干啥的
  • 1605739381:最后一个数字,时间戳。可以用from_unixtime(1605739381)得到。