Вы, вероятно, лучше всего сравните тесты и узнаете. Я видел ситуации, когда выполнение нескольких запросов (как это делает MySQL) выполняется быстрее, чем JOIN, и один большой медленный запрос, который занимает много памяти и приводит к зависанию сервера БД. Я говорю «эталонный тест», потому что он будет зависеть от вашего сервера баз данных, объема памяти и одновременных соединений, размеров ваших таблиц, оптимизации ваших индексов и размера ваших типичных наборов записей. СОЕДИНЕНИЯ в больших неиндексированных столбцах очень дороги (поэтому вы не должны их делать или добавлять индексы).
Вы, вероятно, также узнаете немного больше / будете более удовлетворены в конце, если вы напишете хотя бы немного из обеих реализаций (вам не нужно писать методы, просто набор тестовых запросов), а затем проведете тестирование, против просто идти с одним или другим. Самая хитрая (но важная) часть тестирования - это симуляция одновременного доступа пользователей к БД одновременно - реалистичная производственная память и загрузка процессора.
Имейте в виду, что вы имеете дело с двумя проблемами: одна из них - это проблема с DBA, как мне сделать ее максимально быстрой и эффективной. Второй - это программист, который хочет красивый, обслуживаемый код. (б) делает ваш код более читабельным и расширяемым, чем просто гигантские запросы со сложными соединениями, поэтому вы можете предпочесть его более предпочтительному, чем (а), если он не будет значительно медленнее.