Добавьте кэш по аргументам запроса с понятным сроком жизни и правилами инвалидирования. Если вызовы приходят одновременно, объединяйте загрузку одного ключа, чтобы не устроить лавину запросов.
Есть функция запроса в базу, которая возвращает одно и то же значение. Предложи решение, чтобы она не ходила лишний раз в базу за одними и теми же данными.
Добавьте кэш по аргументам запроса с понятным сроком жизни и правилами инвалидирования. Если вызовы приходят одновременно, объединяйте загрузку одного ключа, чтобы не устроить лавину запросов.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Добавьте кэш по аргументам запроса с понятным сроком жизни и правилами инвалидирования. Если вызовы приходят одновременно, объединяйте загрузку одного ключа, чтобы не устроить лавину запросов.
Для действительно неизменяемого единственного значения возможен sync.Once, но он не подходит для обычного изменяемого кэша и повторов после ошибки. Не держите общий mutex во время долгого обращения к БД. Решите, кэшировать ли отсутствие и ошибки, ограничьте объём памяти и измеряйте hit rate. Одинаковый ответ сегодня не доказывает его неизменность навсегда.