Это кажется очень неэффективным
Это то, что база данных создана и оптимизирована для => запроса данных на основе полей, и если вы поместите индексы в эти поля, это будет очень быстро. Конечно, Session, Cookies, Cache - это некоторые распространенные методы, которые вы можете использовать, чтобы ограничить количество запросов к базе данных, но вы должны будете предположить возможную устаревание данных, которые вы получаете таким образом (если другой поток / процесс изменил данные в базе данных, вы больше не получите правильные результаты).
Поэтому, прежде чем приступать к преждевременной оптимизации, я бы порекомендовал вам: забивать свою базу данных, пока не обнаружите, что это на самом деле является узким местом для вашего приложения. Базы данных могут стать узким местом в некоторых приложениях с очень высоким трафиком, где вам следует прибегнуть к одному из упомянутых методов (или, конечно, в некоторых плохо написанных приложениях, но давайте пока исключим эту возможность).