Normalmente, a estrutura da tabela se parece com isso:
páginas da tabela:
id | name | ...
==========================
1 Some Page
2 Some Other Page
tabela page_views:
page_id | views
================
1 1234
2 80
onde pages_views tem um índice exclusivo em
page_id
A instrução MySQL para incrementar as visualizações fica assim:
INSERT INTO `pages_views` SET views=1 WHERE page_id=?
ON DUPLICATE KEY UPDATE views=views+1 ;
Desde
pages_views.page_id
for único, a linha da página será criada se não existir; se existir (essa é a cláusula "chave duplicada"), o contador será incrementado. Eu escolhi duas tabelas separadas aqui, pois as páginas do CMS geralmente não são atualizadas com muita frequência (e, portanto, sua carga é principalmente lida), enquanto as visualizações de página são lidas e atualizadas, bem, com cada visualização de página.