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/