Нет такого понятия как оптимальное число запросов. Правило одно - чем меньше, тем лучше. По хорошему лучше всего даже вообще не делать запросы к БД а вытаскивать данные например из мемкеша. Т.е. если данные не часто обновляются, то лучше их закэшировать при первом запросе и отдавать кэш. Основной концепт - производительность.