# Join Method Decision

__*Small table, can we define small?*__
__*Big table, can we define big?*__

![`smart`](ChooseTableJoinAlgorithms0101_en_001_20230129.png)
![`smart`](ChooseTableJoinAlgorithms0102_en_001_20230129.png)

------------------------------------------------------------------------------
When joining a small table with a large table, the `IndexJoin/IndexHashJoin` method offers benefits such as low time complexity, memory efficiency, and high parallelism. For optimal performance, ensure the following:

- The small table acts as the driving table.
- The join column in the large table has an index.
- The filtering column in the `WHERE` condition is preferably indexed.

However, as the size of the driving table increases, each index lookup in `IndexJoin/IndexHashJoin` can be significantly impacted by network latency. When the driving table becomes sufficiently large, switching to `HashJoin` is recommended to mitigate network latency. For large tables, ensure indexes are created on the join columns and any columns used in the `WHERE` condition to enhance performance.