jonathanc-n commented on PR #17482:
URL: https://github.com/apache/datafusion/pull/17482#issuecomment-3383817937
@2010YOUY01 I have made quite a bit changes:
## New Changes
- Incremental output logic now just uses BatchCoalescer which makes all the
logic a lot simpler
- Instead of using take() it can improve performance by using slice()
- Added RoundRobin Partitioning for right inputs. and left inputs are single
partitioned
- Added `remaining_partitions` to synchronize when to actually check
unmatched indices. Enforces that building unmatched indices only happens once.
- Added some additional tests
Current benchmarks use larger table on left side and smaller on right. Swap
inputs will be supported in a follow up.
## Benchmarks
Benchmarks look very good. To run it yourself you can replace the queries in
`nlj.rs` with the queries below and make sure to remove the NLJ only
restriction.
These queries use `<` or `<=` (causes descending sort) which means these
benchmarks account for sorting.
### Full Joins
Queries
<details>
<summary>Click to expand</summary>
```
r#"
SELECT *
FROM range(30000) AS t1
FULL JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
FULL JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
FULL JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
FULL JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
FULL JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
FULL JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
FULL JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
FULL JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(7000) AS t1
FULL JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
set datafusion.optimizer.allow_piecewise_merge_join=true
"#,
r#"
SELECT *
FROM range(30000) AS t1
FULL JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
FULL JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
FULL JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
FULL JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
FULL JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
FULL JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
FULL JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
FULL JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(7000) AS t1
FULL JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
```
</details>
Results
<details>
<summary>Click to expand</summary>
```
Query 1 iteration 0 returned 34852 rows in 16.05125ms
Query 1 iteration 1 returned 34852 rows in 11.752291ms
Query 1 iteration 2 returned 34852 rows in 9.914917ms
Query 2 iteration 0 returned 529500 rows in 16.1965ms
Query 2 iteration 1 returned 529500 rows in 15.085ms
Query 2 iteration 2 returned 529500 rows in 14.240292ms
Query 3 iteration 0 returned 32018002 rows in 120.564584ms
Query 3 iteration 1 returned 32018002 rows in 120.938292ms
Query 3 iteration 2 returned 32018002 rows in 123.329541ms
Query 4 iteration 0 returned 598502 rows in 43.972708ms
Query 4 iteration 1 returned 598502 rows in 44.160041ms
Query 4 iteration 2 returned 598502 rows in 44.264125ms
Query 5 iteration 0 returned 32196000 rows in 495.291458ms
Query 5 iteration 1 returned 32196000 rows in 509.875792ms
Query 5 iteration 2 returned 32196000 rows in 508.242708ms
Query 6 iteration 0 returned 2497002 rows in 317.830542ms
Query 6 iteration 1 returned 2497002 rows in 324.181541ms
Query 6 iteration 2 returned 2497002 rows in 319.515667ms
Query 7 iteration 0 returned 12542502 rows in 99.123666ms
Query 7 iteration 1 returned 12542502 rows in 98.18625ms
Query 7 iteration 2 returned 12542502 rows in 98.21575ms
Query 8 iteration 0 returned 24576500 rows in 206.997417ms
Query 8 iteration 1 returned 24576500 rows in 205.0475ms
Query 8 iteration 2 returned 24576500 rows in 201.080625ms
Query 9 iteration 0 returned 506500 rows in 4.351875ms
Query 9 iteration 1 returned 506500 rows in 4.322667ms
Query 9 iteration 2 returned 506500 rows in 4.290833ms
using pwmj for 10
Query 10 iteration 0 returned 0 rows in 25.458µs
Query 10 iteration 1 returned 0 rows in 21.958µs
Query 10 iteration 2 returned 0 rows in 21.334µs
using pwmj for 11
Query 11 iteration 0 returned 34852 rows in 850.875µs
Query 11 iteration 1 returned 34852 rows in 616.75µs
Query 11 iteration 2 returned 34852 rows in 613.292µs
using pwmj for 12
Query 12 iteration 0 returned 529500 rows in 1.581291ms
Query 12 iteration 1 returned 529500 rows in 1.555667ms
Query 12 iteration 2 returned 529500 rows in 1.574417ms
using pwmj for 13
Query 13 iteration 0 returned 32018002 rows in 50.687208ms
Query 13 iteration 1 returned 32018002 rows in 51.185ms
Query 13 iteration 2 returned 32018002 rows in 52.096125ms
using pwmj for 14
Query 14 iteration 0 returned 598502 rows in 3.986583ms
Query 14 iteration 1 returned 598502 rows in 4.21625ms
Query 14 iteration 2 returned 598502 rows in 3.984708ms
using pwmj for 15
Query 15 iteration 0 returned 32196000 rows in 56.680583ms
Query 15 iteration 1 returned 32196000 rows in 56.67925ms
Query 15 iteration 2 returned 32196000 rows in 57.5255ms
using pwmj for 16
Query 16 iteration 0 returned 2497002 rows in 20.027667ms
Query 16 iteration 1 returned 2497002 rows in 19.987083ms
Query 16 iteration 2 returned 2497002 rows in 20.5755ms
using pwmj for 17
Query 17 iteration 0 returned 12542502 rows in 21.576958ms
Query 17 iteration 1 returned 12542502 rows in 21.268875ms
Query 17 iteration 2 returned 12542502 rows in 21.101625ms
using pwmj for 18
Query 18 iteration 0 returned 24576500 rows in 41.632166ms
Query 18 iteration 1 returned 24576500 rows in 42.199417ms
Query 18 iteration 2 returned 24576500 rows in 41.981208ms
using pwmj for 19
Query 19 iteration 0 returned 506500 rows in 1.459417ms
Query 19 iteration 1 returned 506500 rows in 1.31825ms
Query 19 iteration 2 returned 506500 rows in 1.320333ms
```
</details>
### Left Joins
Queries
<details>
<summary>Click to expand</summary>
```
r#"
SELECT *
FROM range(30000) AS t1
LEFT JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
LEFT JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
LEFT JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
LEFT JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
LEFT JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
LEFT JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
LEFT JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
LEFT JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
set datafusion.optimizer.allow_piecewise_merge_join=true
"#,
r#"
SELECT *
FROM range(30000) AS t1
LEFT JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
LEFT JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
LEFT JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
LEFT JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
LEFT JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
LEFT JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
LEFT JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
LEFT JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
```
</details>
Results:
<details>
<summary>Click to expand</summary>
```
Query 1 iteration 0 returned 34851 rows in 13.563958ms
Query 1 iteration 1 returned 34851 rows in 10.809917ms
Query 1 iteration 2 returned 34851 rows in 9.401708ms
Query 2 iteration 0 returned 529500 rows in 16.359917ms
Query 2 iteration 1 returned 529500 rows in 14.207666ms
Query 2 iteration 2 returned 529500 rows in 13.391625ms
Query 3 iteration 0 returned 32018001 rows in 119.216542ms
Query 3 iteration 1 returned 32018001 rows in 124.351333ms
Query 3 iteration 2 returned 32018001 rows in 125.460291ms
Query 4 iteration 0 returned 598501 rows in 43.042167ms
Query 4 iteration 1 returned 598501 rows in 41.469958ms
Query 4 iteration 2 returned 598501 rows in 42.400917ms
Query 5 iteration 0 returned 32196000 rows in 484.91175ms
Query 5 iteration 1 returned 32196000 rows in 501.124291ms
Query 5 iteration 2 returned 32196000 rows in 483.698208ms
Query 6 iteration 0 returned 2497001 rows in 314.219708ms
Query 6 iteration 1 returned 2497001 rows in 312.403458ms
Query 6 iteration 2 returned 2497001 rows in 316.319542ms
Query 7 iteration 0 returned 12542501 rows in 97.666ms
Query 7 iteration 1 returned 12542501 rows in 99.839541ms
Query 7 iteration 2 returned 12542501 rows in 97.520875ms
Query 8 iteration 0 returned 24576500 rows in 205.489833ms
Query 8 iteration 1 returned 24576500 rows in 199.618292ms
Query 8 iteration 2 returned 24576500 rows in 205.075834ms
using pwmj for 9
Query 9 iteration 0 returned 0 rows in 25.583µs
Query 9 iteration 1 returned 0 rows in 22.25µs
Query 9 iteration 2 returned 0 rows in 20.459µs
using pwmj for 10
Query 10 iteration 0 returned 34851 rows in 889.5µs
Query 10 iteration 1 returned 34851 rows in 644.875µs
Query 10 iteration 2 returned 34851 rows in 674.542µs
using pwmj for 11
Query 11 iteration 0 returned 529500 rows in 1.657375ms
Query 11 iteration 1 returned 529500 rows in 1.7705ms
Query 11 iteration 2 returned 529500 rows in 1.71175ms
using pwmj for 12
Query 12 iteration 0 returned 32018001 rows in 56.604542ms
Query 12 iteration 1 returned 32018001 rows in 54.31675ms
Query 12 iteration 2 returned 32018001 rows in 58.129333ms
using pwmj for 13
Query 13 iteration 0 returned 598501 rows in 4.146833ms
Query 13 iteration 1 returned 598501 rows in 4.068125ms
Query 13 iteration 2 returned 598501 rows in 4.014459ms
using pwmj for 14
Query 14 iteration 0 returned 32196000 rows in 62.61375ms
Query 14 iteration 1 returned 32196000 rows in 63.86275ms
Query 14 iteration 2 returned 32196000 rows in 63.588916ms
using pwmj for 15
Query 15 iteration 0 returned 2497001 rows in 20.669417ms
Query 15 iteration 1 returned 2497001 rows in 20.772416ms
Query 15 iteration 2 returned 2497001 rows in 20.07075ms
using pwmj for 16
Query 16 iteration 0 returned 12542501 rows in 23.259375ms
Query 16 iteration 1 returned 12542501 rows in 22.053ms
Query 16 iteration 2 returned 12542501 rows in 23.912958ms
using pwmj for 17
Query 17 iteration 0 returned 24576500 rows in 46.321708ms
Query 17 iteration 1 returned 24576500 rows in 44.81025ms
Query 17 iteration 2 returned 24576500 rows in 47.482666ms
```
</details>
### Right Joins
Queries
<details>
<summary>Click to expand</summary>
```
r#"
SELECT *
FROM range(30000) AS t1
RIGHT JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
RIGHT JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
RIGHT JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
RIGHT JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
RIGHT JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
RIGHT JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
RIGHT JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
RIGHT JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
set datafusion.optimizer.allow_piecewise_merge_join=true
"#,
r#"
SELECT *
FROM range(30000) AS t1
RIGHT JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
RIGHT JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
RIGHT JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
RIGHT JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
RIGHT JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
RIGHT JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
RIGHT JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
RIGHT JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
```
</details>
Results
<details>
<summary>Click to expand</summary>
```
Query 1 iteration 0 returned 4951 rows in 15.904458ms
Query 1 iteration 1 returned 4951 rows in 11.353667ms
Query 1 iteration 2 returned 4951 rows in 10.1235ms
Query 2 iteration 0 returned 500500 rows in 16.099917ms
Query 2 iteration 1 returned 500500 rows in 14.73375ms
Query 2 iteration 2 returned 500500 rows in 14.110875ms
Query 3 iteration 0 returned 31996001 rows in 123.070583ms
Query 3 iteration 1 returned 31996001 rows in 125.751833ms
Query 3 iteration 2 returned 31996001 rows in 122.032792ms
Query 4 iteration 0 returned 499501 rows in 45.082459ms
Query 4 iteration 1 returned 499501 rows in 44.246958ms
Query 4 iteration 2 returned 499501 rows in 44.218292ms
Query 5 iteration 0 returned 32004000 rows in 494.880083ms
Query 5 iteration 1 returned 32004000 rows in 497.626709ms
Query 5 iteration 2 returned 32004000 rows in 491.031125ms
Query 6 iteration 0 returned 1999001 rows in 319.75ms
Query 6 iteration 1 returned 1999001 rows in 327.817708ms
Query 6 iteration 2 returned 1999001 rows in 320.286208ms
Query 7 iteration 0 returned 12497501 rows in 100.778041ms
Query 7 iteration 1 returned 12497501 rows in 98.214708ms
Query 7 iteration 2 returned 12497501 rows in 98.079084ms
Query 8 iteration 0 returned 24503500 rows in 203.049042ms
Query 8 iteration 1 returned 24503500 rows in 204.667958ms
Query 8 iteration 2 returned 24503500 rows in 206.985375ms
using pwmj for 9
Query 9 iteration 0 returned 0 rows in 26.625µs
Query 9 iteration 1 returned 0 rows in 22.875µs
Query 9 iteration 2 returned 0 rows in 20.208µs
using pwmj for 10
Query 10 iteration 0 returned 4951 rows in 708µs
Query 10 iteration 1 returned 4951 rows in 554.792µs
Query 10 iteration 2 returned 4951 rows in 557.792µs
using pwmj for 11
Query 11 iteration 0 returned 500500 rows in 1.338708ms
Query 11 iteration 1 returned 500500 rows in 1.315292ms
Query 11 iteration 2 returned 500500 rows in 1.318208ms
using pwmj for 12
Query 12 iteration 0 returned 31996001 rows in 36.270542ms
Query 12 iteration 1 returned 31996001 rows in 35.548916ms
Query 12 iteration 2 returned 31996001 rows in 37.627291ms
using pwmj for 13
Query 13 iteration 0 returned 499501 rows in 3.288875ms
Query 13 iteration 1 returned 499501 rows in 3.284625ms
Query 13 iteration 2 returned 499501 rows in 3.224916ms
using pwmj for 14
Query 14 iteration 0 returned 32004000 rows in 42.140333ms
Query 14 iteration 1 returned 32004000 rows in 41.813167ms
Query 14 iteration 2 returned 32004000 rows in 41.961667ms
using pwmj for 15
Query 15 iteration 0 returned 1999001 rows in 16.863042ms
Query 15 iteration 1 returned 1999001 rows in 17.2575ms
Query 15 iteration 2 returned 1999001 rows in 16.82575ms
using pwmj for 16
Query 16 iteration 0 returned 12497501 rows in 16.231792ms
Query 16 iteration 1 returned 12497501 rows in 15.059792ms
Query 16 iteration 2 returned 12497501 rows in 15.160083ms
using pwmj for 17
Query 17 iteration 0 returned 24503500 rows in 30.725667ms
Query 17 iteration 1 returned 24503500 rows in 30.282084ms
Query 17 iteration 2 returned 24503500 rows in 30.001167ms
```
</details>
### Inner Joins
Queries
<details>
<summary>Click to expand</summary>
```
r#"
SELECT *
FROM range(30000) AS t1
INNER JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
INNER JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
INNER JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
INNER JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
INNER JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
INNER JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
INNER JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
INNER JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
set datafusion.optimizer.allow_piecewise_merge_join=true
"#,
r#"
SELECT *
FROM range(30000) AS t1
INNER JOIN range(100) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
INNER JOIN range(1000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(30000) AS t1
INNER JOIN range(8000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(100000) AS t1
INNER JOIN range(1000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(200000) AS t1
INNER JOIN range(8000) AS t2
ON (t1.value <= t2.value);
"#,
r#"
SELECT *
FROM range(500000) AS t1
INNER JOIN range(2000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(50000) AS t1
INNER JOIN range(5000) AS t2
ON (t1.value < t2.value);
"#,
r#"
SELECT *
FROM range(80000) AS t1
INNER JOIN range(7000) AS t2
ON (t1.value <= t2.value);
"#,
```
</details>
Results
<details>
<summary>Click to expand</summary>
```
Query 1 iteration 0 returned 4950 rows in 13.815208ms
Query 1 iteration 1 returned 4950 rows in 10.542709ms
Query 1 iteration 2 returned 4950 rows in 9.745042ms
Query 2 iteration 0 returned 500500 rows in 15.482083ms
Query 2 iteration 1 returned 500500 rows in 14.565542ms
Query 2 iteration 2 returned 500500 rows in 13.728666ms
Query 3 iteration 0 returned 31996000 rows in 126.463708ms
Query 3 iteration 1 returned 31996000 rows in 121.749166ms
Query 3 iteration 2 returned 31996000 rows in 120.915709ms
Query 4 iteration 0 returned 499500 rows in 42.01275ms
Query 4 iteration 1 returned 499500 rows in 42.730833ms
Query 4 iteration 2 returned 499500 rows in 101.3445ms
Query 5 iteration 0 returned 32004000 rows in 511.74725ms
Query 5 iteration 1 returned 32004000 rows in 510.05675ms
Query 5 iteration 2 returned 32004000 rows in 498.320875ms
Query 6 iteration 0 returned 1999000 rows in 315.585917ms
Query 6 iteration 1 returned 1999000 rows in 314.887791ms
Query 6 iteration 2 returned 1999000 rows in 313.276792ms
Query 7 iteration 0 returned 12497500 rows in 98.969ms
Query 7 iteration 1 returned 12497500 rows in 100.670583ms
Query 7 iteration 2 returned 12497500 rows in 98.817625ms
Query 8 iteration 0 returned 24503500 rows in 220.258166ms
Query 8 iteration 1 returned 24503500 rows in 205.282709ms
Query 8 iteration 2 returned 24503500 rows in 204.11275ms
using pwmj for 9
Query 9 iteration 0 returned 0 rows in 27.667µs
Query 9 iteration 1 returned 0 rows in 22.75µs
Query 9 iteration 2 returned 0 rows in 21.375µs
using pwmj for 10
Query 10 iteration 0 returned 4950 rows in 721.041µs
Query 10 iteration 1 returned 4950 rows in 533.333µs
Query 10 iteration 2 returned 4950 rows in 596.5µs
using pwmj for 11
Query 11 iteration 0 returned 500500 rows in 1.363375ms
Query 11 iteration 1 returned 500500 rows in 1.469292ms
Query 11 iteration 2 returned 500500 rows in 1.374417ms
using pwmj for 12
Query 12 iteration 0 returned 31996000 rows in 36.737875ms
Query 12 iteration 1 returned 31996000 rows in 37.10075ms
Query 12 iteration 2 returned 31996000 rows in 37.435667ms
using pwmj for 13
Query 13 iteration 0 returned 499500 rows in 3.59ms
Query 13 iteration 1 returned 499500 rows in 3.438667ms
Query 13 iteration 2 returned 499500 rows in 3.273291ms
using pwmj for 14
Query 14 iteration 0 returned 32004000 rows in 42.230333ms
Query 14 iteration 1 returned 32004000 rows in 42.319541ms
Query 14 iteration 2 returned 32004000 rows in 42.030083ms
using pwmj for 15
Query 15 iteration 0 returned 1999000 rows in 17.155917ms
Query 15 iteration 1 returned 1999000 rows in 17.361208ms
Query 15 iteration 2 returned 1999000 rows in 17.18875ms
using pwmj for 16
Query 16 iteration 0 returned 12497500 rows in 16.114084ms
Query 16 iteration 1 returned 12497500 rows in 16.151625ms
Query 16 iteration 2 returned 12497500 rows in 15.919125ms
using pwmj for 17
Query 17 iteration 0 returned 24503500 rows in 30.728791ms
Query 17 iteration 1 returned 24503500 rows in 30.893458ms
Query 17 iteration 2 returned 24503500 rows in 30.559375ms
```
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]