Как хранить состояния просмотра лейблы «new» пользователем?
Заведите отдельную NoSQL базу, и туда пишите связку user_id-item_id. Если записи нет, то метка на странице ставится, при этом записывается эта самая связка (тогда при обновлении эта пара уже будет в базе и метка автоматом не поставится). Если вы используете ORM, то они помогут вам без особой писанины, если не пользуетесь, то придется все конечно писать самому.
Можно еще добавить поле со временем просмотра в NoSql, то можно будет по расписанию вычищать базу от ненужных записей. Если добавить и "длительность новизны" в MySQL, то будет возможность игнорировать проверку на просмотр.
ИМХО, для простого рода логирования NoSQL подходит очень даже хорошо.
Организация хранения статуса новых постов?