Meget af den større forumsoftware bruger en sporingstabel til at holde trit med, hvem der har læst hvad, sådan noget som dette (stærkt forenklet):
CREATE TABLE topic_tracking (
user_id INT NOT NULL,
topic_id INT NOT NULL,
last_visit DATETIME NOT NULL,
PRIMARY KEY (user_id, topic_id)
)
Du bruger derefter et join på denne tabel til at kontrollere, om et indlæg, du viser, er læst eller ej. Da du vil bladre i dine tråde, burde dette generere relativt få yderligere forespørgsler (afhængigt af hvor mange indlæg du viser pr. side).
Når en bruger besøger tråden, skal du opdatere denne sporingstabel med tidsstemplet for deres besøg. Når du derefter viser dine trådlinks, skal du tjekke denne tabel for at se, om deres last_visit er tidligere end det sidste indlæg i tråden. Dette lader dig også vise "opdaterede" tråde, ikke kun "nye".