TABLE LOOKUP 算子用于表示全局索引的回表逻辑。
示例:全局索引回表
obclient> CREATE TABLE t1(c1 INT PRIMARY KEY, c2 INT, c3 INT) PARTITION BY
HASH(c1) PARTITIONS 4;
Query OK, 0 rows affected
obclient> CREATE INDEX i1 ON t1(c2) GLOBAL;
Query OK, 0 rows affected
obclient> EXPLAIN SELECT * FROM t1 WHERE c2 = 1\G
*************************** 1. row ***************************
Query Plan:
| ========================================
|ID|OPERATOR |NAME |EST. ROWS|COST |
----------------------------------------
|0 |TABLE LOOKUP|t1 |3960 |31065|
|1 | TABLE SCAN |t1(i1)|3960 |956 |
========================================
Outputs & filters:
-------------------------------------
0 - output([t1.c1], [t1.c2], [t1.c3]), filter(nil),
partitions(p[0-3])
1 - output([t1.c1]), filter(nil),
access([t1.c1]), partitions(p0)
上述示例中,1 号算子是扫描全局索引 i1,0 号算子表明从主表中获取不在全局索引的列。执行计划展示中的 outputs & filters 详细展示了 TABLE LOOKUP 算子的输出信息如下:
| 信息名称 | 含义 |
|---|---|
| output | 该算子的输出列。 |
| filter | 该算子的过滤谓词。 由于示例中 TABLE LOOKUP 算子没有设置 filter,所以为 nil。 |
| partitions | 查询需要扫描的分区。 |
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




