Généralement, la structure du tableau ressemble à ceci :
pages du tableau :
id | name | ...
==========================
1 Some Page
2 Some Other Page
pages_vues du tableau :
page_id | views
================
1 1234
2 80
où pages_views a un index unique sur page_id
L'instruction MySQL pour incrémenter les vues se présente alors comme suit :
INSERT INTO `pages_views` SET views=1 WHERE page_id=?
ON DUPLICATE KEY UPDATE views=views+1 ;
Depuis pages_views.page_id
est unique, la ligne de la page sera créée si elle n'existe pas ; s'il existe (c'est la clause "clé dupliquée"), le compteur sera incrémenté.
J'ai choisi deux tables distinctes ici, car les pages CMS ne sont généralement pas mises à jour trop souvent (et par conséquent, leur charge est principalement constituée de lectures), alors que les pages vues sont lues et mises à jour, enfin, à chaque page vue.