[MDEV-22383] Use Block Nested Loops Hash Join by default when appropriate Created: 2020-04-28  Updated: 2023-12-22

Status: Stalled
Project: MariaDB Server
Component/s: Optimizer
Fix Version/s: 11.5

Type: Task Priority: Major
Reporter: Igor Babaev Assignee: Igor Babaev
Resolution: Unresolved Votes: 0
Labels: None

Issue Links:
Relates
relates to MDEV-16337 Setting join_cache_level=4 changes ef... Open

 Description   

Currently joining a table by Block Nested Loops Hash (BNLH) algorithm is not considered as an option by default. Usage of this algorithm is enabled only when the system variable join_cache_level is set to a value greater than 3. Now by default this variable is set to 2.

The goals of this task are:
1. To enable usage of BNLH joins by default.
2. To use BNLH when joined table has no matching index for key access.
3. To provide cost-based solution for the choice between BNLH and BKA/NLJ algorithms when joining a table.
4. To support usage of BNLH for equi-join conditions of the form f1(t1.a)=f2(t2.b)


Generated at Thu Feb 08 09:14:19 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.