Good question, there’s not a really short answer to it With routing protocols like RIP, OSPF or EIGRP we use default routes for outbound traffic so we really don’t know anything about the destination. When we use BGP, it’s possible that we learn about all possible destinations (entire Internet routing table) or a partial routing table.
BGP uses a lot of different attributes (weight, local preference, metric, etc) that we can use to decide which path we use for certain destinations. You can use these for traffic engineering to send an X amount of traffic to one BGP neighbor and the rest to another neighbor.
Another option is something called “bgp dmzlink-bw”. This allows you to do load balancing based on the bandwidth.