Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
"": -- (пустая схема)
q1, q3
user_id = ?:
1: q2
status = ?:
"rejected": q4
"new": q5
"accepted": q6
{id: 105, user_id: 2, title: "old title", status: "new", time_added: "..."} и обновляем его до {id: 105, user_id: 2, title: "new title", status: "accepted", time_added: "..."}"", user_id=2, status="new", подставляем новый, получаем "", user_id=2, status="accepted". Собирая всё вместе, видим что надо сбросить q1,q3,q5 и q6.select count(*) from comment where post_id = <post_id>;
такие запросы будут инвалидироваться только тогда когда надо, сами посты будут инвалидироваться независимо, т.е. значительно реже, чем в первом случае. Минус много запросов, но если они, как правило, будут браться из кеша, то это нормально.select post_id, count(*) from comment
where post_id in (<post_id1>, <post_id2>, ...) group by 1;
Минусы — такие запросы будут чаще инвалидироваться, чем в предыдущем варианте, более сложная реализация и промахи при изменении списка постов на странице.
К вопросу об инвалидации кеша