я думаю вопрос достаточно базовый. Я разработчик, сегодня я был на собеседовании и человек задал мне такой вопрос, где бы я хранил дату последнего посещения пользователя, в табличке users, или где либо еще. Я ему ответил, что конечно в другой таблице так как получается что мы просто нарушаем консистентность таблицы я бы создал таблицу в которой хранил даты посещения юзера. На это он мне сказал что это правильно, но обьяснил я неправильно, и суть в том что MySQL и другие драйверы как бы кешируют поля, то есть если у нас будет много юзеров и мы часто будет перезаписывать одно и тоже поле, то кэш будет сбрасываться и производительность будет низкая. Никогда не слышал чтобы был какой то кэш у полей который сбрасывается, я понимаю индекс если бы у поля был, его нужно пересчитывать, но чтобы кэш не слышал. Что думаете коллеги, такое бывает?
спорный вопрос на счет места хранения. Есть разные варианты. Не только в юзере дату хранить. В том числе, чтобы обеспечить консистентность данных, в юзере можно хранить прямую ссылку на строку в "либо еще где", но чтобы приходить к этой строке по прямому ключу, а не вычислять.
Прямо бомбить таблицу апдейтами вообще такая себе идея
в любом случае у человека не было шансов ) тот, кто собеседовал имел "более правильную" точку зрения )
Обсуждают сегодня