Block-based Join Algorithms
In the versions of MariaDB/MySQL before 5.3 only one block based join algorithm was implemented. It was Block Nested Loops (BNL) join algorithm. It could be used only for inner joins. MariaDB 5.3 enhances the implementation of BNL join and provides a variety of block based join algorithms that can be used for inner joins, outer joins and semi-joins. Any block based join algorithm employs a join buffer to accumulate records of the first join operand before it starts looking for matches in the second join operand. The following paragraphs present all of these block based algorithms: - Block Nested Loops (BNL) join - Block Nested Loops Hash (BNLH) join - Block Index join known as Batch Key Access (BKA) join - Block Index Hash join known as Batch Key Access Hash (BKAH) join