My understanding is that IXPs provide the primary means of ISPs to connect with each other
I think that is a massive oversimplification.
In general connections between autonomous systems (this includes ISPs but also other major networks) can be split into two main catogories (there are also intermediate cases). In a "transit" connection a customer AS pays a provider ISP for routes to the internet in general. In a "peering" connection the two ASs exchange routes to each other's customers but not to the internet in general.
As a general rule small networks and networks that don't sell transit services want to peer widely (why pay for transit when you don't have to) while large networks are often more restrictive about who they will peer with (why give people something for free when you could be charging them for it).
At the top of the pile are a small number of "teir 1" providers who don't buy any transit at all relying only on peering with each other (but usually not with the little guys) to get a (hopefully) full view of the Internet.
Transit connections normally go over private links (though some IXPs do allow transit), a transit customer usually exchanges a large amount of traffic with a handful of transit providers.
For peering it generally depends on traffic volumes.
Interconnections cost money to maintain. They also cost money to set up/tear down. They cost that money regardless of whther they are fully utilised or not. So putting in place private links for low traffic or speculative peering relationships is prohibitively expensive.
That is where IXPs come in, a network can rent a small number of connections to the IXP's switching infrastructure and use it to establish peering with tens or even hundreds of providers. The IXP will also normally provide a route server allowing routes to be exchanged between participating members (usually the smaller ones) without needing direct BGP sessions.
However the IXPs switching infrastructure does not come for free, so if two networks are consistently exchanging a substantial fraction of a link's traffic then it is more efficient to do it over a direct link.