How would you store read/unread topic status?

From: Mathieu Nebra <mateo21(at)siteduzero(dot)com>
To: pgsql-performance(at)postgresql(dot)org
Subject: How would you store read/unread topic status?
Date: 2009-06-23 11:12:39
Message-ID: 4A40B8A7.2090902@siteduzero.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

Hi all,

I'm running a quite large website which has its own forums. They are
currently heavily used and I'm getting performance issues. Most of them
are due to repeated UPDATE queries on a "flags" table.

This "flags" table has more or less the following fields:

UserID - TopicID - LastReadAnswerID

The flags table keeps track of every topic a member has visited and
remembers the last answer which was posted at this moment. It allows the
user to come back a few days after and immediately jump to the last
answer he has not read.

My problem is that everytime a user READS a topic, it UPDATES this flags
table to remember he has read it. This leads to multiple updates at the
same time on the same table, and an update can take a few seconds. This
is not acceptable for my users.

Question: what is the general rule of thumb here? How would you store
this information?

Thanks a lot in advance.
Mathieu.

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Andres Freund 2009-06-23 12:24:40 Re: How would you store read/unread topic status?
Previous Message Laurent Laborde 2009-06-23 08:55:49 Re: same query in high number of times