Joins appear (to me) to be getting a lot of bad press recently. In discussions I’ve had and articles I’ve read many give the position that joins are somehow inherently bad and to be avoided at all costs.
I’ve never been entirely convinced by the “joins are bad” arguments however. Partly because there’s few concrete cases actually demonstrating the (additional) cost of joins. Instead discussions tend to be hand-wavy arguments around extra CPU cycles used or something to that effect.
So over the next few posts I’m going to do something a bit different on this blog and discuss joins in more detail. We’ll ask questions like:
- Does removing joins (denormalizing) really help performance? If so, what are the catches?
- When are joins bad? What can be done in these cases?
If you’ve got any other questions around joins let me know – I’ll add them to the list and address them in this series.