Стефан Фаро описывает ситуацию, называемую "проблемой списка покупок".
Предположим, у вас есть список покупок для продуктового магазина. В реальной жизни вы садитесь в машину, едете в магазин, покупаете все продукты из своего списка, кладёте их в багажник, едете домой, заносите их в дом и кладёте в холодильник. А теперь представьте, что вместо этого вы едете в магазин, заходите и берёте только первый продукт из своего списка, едете домой, кладёте его в холодильник и снова отправляетесь в магазин! И продолжаете повторять ту же самую последовательность действий для каждого пункта из вашего списка.
Звучит нелепо? Да, но именно этим и занимаются многие приложения, взаимодействуя с базами данных.
А теперь представьте, что для повышения скорости совершения покупок эксперты предложили бы увеличить ширину проходов в магазине, построить более качественные дороги или оснастить автомобиль более мощным двигателем.
Некоторые из этих предложений действительно могут улучшить ситуацию. Но даже если бы можно было сократить время покупок на 30%, это улучшение нельзя сравнивать с успехом, которого можно достичь с помощью одного простого улучшения процесса: купить все продукты за одну поездку.
Как перенести проблему со списком покупок на поведение приложения? Большинство проблем с производительностью вызваны слишком большим количеством слишком мелких запросов.