

Obligatory: ‘Rules for Rulers’ is a very condensed summary of Bruce Bueno de Mesquita and Alastair Smith’s ‘The Dictator’s Handbook’.


Obligatory: ‘Rules for Rulers’ is a very condensed summary of Bruce Bueno de Mesquita and Alastair Smith’s ‘The Dictator’s Handbook’.


Haven’t played ‘Max Payne’ in twenty years, completely forgot what it looks like in-game, and still the first thought from the screenshot was “Max Payne”.


To add to other answers, the result for the ‘all’ feed is likely to be cached, either explicitly by the server app or implicitly by the database. Personal feeds are less likely to be cached, since they’re only used by individual users.


Strictly speaking, the db might be looking in an index to choose rows by the communities — but using such a condition is pretty much guaranteed to be slower than not using it, anyway.
The actual answer depends on the actual database organization, of course. Ideally the whole database should be organized around frequent queries.


Loop Habit Tracker is pretty good for this. In particular, it allows you to schedule stuff like ‘twice a month’, or even ‘run 10 km a week’ or somesuch. The app shows the whole list, but marks which tasks are done and which aren’t yet. Plus there are notifications and widgets, but I haven’t used the latter.
Best part is that it’s open-source and requires nearly zero permissions. OTOH the data isn’t synced anywhere.
It’s likely much faster to fetch the common feed from the database cache or prepared cache like Redis, and apply all this additional data in the app, than do uncached joins. So I’d hope that the apps do this. Especially since you say they use Redis, which of course doesn’t do joins and such, unless something changed in the past years.