https://severalnines.com/blog/overview-various-scan-methods-postgresql/
https://severalnines.com/blog/overview-join-methods-postgresql/
https://www.cybertec-postgresql.com/en/join-strategies-and-performance-in-postgresql/
https://patshaughnessy.net/2015/11/24/a-look-at-how-postgres-executes-a-tiny-join
https://patshaughnessy.net/2016/1/22/is-your-postgres-query-starved-for-memory
https://www.cybertec-postgresql.com/en/enforcing-join-orders-in-postgresql/
https://pganalyze.com/blog/how-postgres-chooses-index#parameterized-index-scans-or-why-nested-loop-are-sometimes-a-good-join-type
https://pganalyze.com/blog/5mins-postgres-planner-join-equivalence-class-in-any-filters
https://severalnines.com/blog/overview-join-methods-postgresql/
https://www.cybertec-postgresql.com/en/join-strategies-and-performance-in-postgresql/
https://patshaughnessy.net/2015/11/24/a-look-at-how-postgres-executes-a-tiny-join
https://patshaughnessy.net/2016/1/22/is-your-postgres-query-starved-for-memory
https://www.cybertec-postgresql.com/en/enforcing-join-orders-in-postgresql/
https://pganalyze.com/blog/how-postgres-chooses-index#parameterized-index-scans-or-why-nested-loop-are-sometimes-a-good-join-type
https://pganalyze.com/blog/5mins-postgres-planner-join-equivalence-class-in-any-filters