Brian "Krow" Aker (krow) wrote,
Brian "Krow" Aker
krow

Page Counters, A different approach...

I just noticed PeterZ's post on page counters:
http://www.mysqlperformanceblog.com/2007/07/01/implementing-efficient-counters-with-mysql/

Let me offer a different solution.

Do not do it.

Really, if you grow a site to any size at all you will discover that
the contention you create on updates is just too much. Sure, you can
optimize it by have the update done on a de-normalized table, but
unless you are using 5.1 with its row level replication, eventually
the replication locks will nail you.

Instead build an accesslog type table. You probably already have one,
aka you are recording your accesslog in your database. Just run a job
every so often that updates the counter on your object in its own
table (which will save you on the select if it is useful to have a
historical count on the object).

If you want a simple logger to MySQL, I keep mine here:
http://hg.tangent.org/Krow-Apache-Log/
Subscribe
  • Post a new comment

    Error

    Comments allowed for friends only

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 1 comment