You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
createtablefoo(a int, b int, c int);
createtablebar (a intnot null, b int, c int);
mysql> explain select*from foo where a not in (select b from bar);
+-----------------------------+----------+-----------+---------------+-----------------------------------------------------------------+
| id | estRows | task | access object | operator info |
+-----------------------------+----------+-----------+---------------+-----------------------------------------------------------------+
| HashJoin_8 | 8000.00 | root | | CARTESIAN anti semi join, other cond:eq(test.foo.a, test.bar.b) |
| ├─TableReader_12(Build) | 10000.00 | root | | data:TableFullScan_11 |
| │ └─TableFullScan_11 | 10000.00 | cop[tikv] | table:bar | keep order:false, stats:pseudo |
| └─TableReader_10(Probe) | 10000.00 | root | | data:TableFullScan_9 |
| └─TableFullScan_9 | 10000.00 | cop[tikv] | table:foo | keep order:false, stats:pseudo |
+-----------------------------+----------+-----------+---------------+-----------------------------------------------------------------+5 rows inset (0.00 sec)
Currently planner always generate CARTESIAN anti semi join, which has bad performance, because we don't support NAAJ (Null-aware Anti Join) yet.
We should support NAAJ to gain better performance.
The text was updated successfully, but these errors were encountered:
Feature Request
Currently planner always generate CARTESIAN anti semi join, which has bad performance, because we don't support NAAJ (Null-aware Anti Join) yet.
We should support NAAJ to gain better performance.
The text was updated successfully, but these errors were encountered: