W tym przypadku najlepiej byłoby przyznać się do nadmiarowości, aby poprawić szybkość. Do tabeli wiadomości dodaj te pola:
comments_count int not null default 0,
likes_count int not null default 0,
hits_count int not null default 0
Kiedy komentarz/polubienie/trafienie jest dodawane/usuwane, jeśli baza danych obsługuje wyzwalacze, wyzwalaj inkrementację/dekrementację wskazanego licznika, a jeśli nie - zrób to ręcznie przy każdym wstawieniu/usunięciu (może procedura składowana?).
Ten rodzaj danych jest częściej odczytywany niż zapisywany, więc aby zoptymalizować prędkość odczytu, spowolnienie prędkości zapisu i przestrzeni dyskowej nie jest wielkim problemem.
Od czasu do czasu byłoby w porządku uruchomić zapytanie, które zaktualizuje te liczniki, jeśli z jakiegoś powodu staną się błędne.