通常、テーブル構造は次のようになります。
テーブルページ:
id | name | ...
==========================
1 Some Page
2 Some Other Page
テーブルpages_views:
page_id | views
================
1 1234
2 80
ここで、pages_viewsにはpage_id
に一意のインデックスがあります
ビューをインクリメントするMySQLステートメントは次のようになります。
INSERT INTO `pages_views` SET views=1 WHERE page_id=?
ON DUPLICATE KEY UPDATE views=views+1 ;
pages_views.page_id
以降 が一意である場合、ページの行が存在しない場合は作成されます。存在する場合(これは「重複キー」句です)、カウンターは増分されます。
ここでは2つの別々のテーブルを選択しました。これは、CMSページは通常あまり頻繁に更新されないため(したがって、その負荷はほとんど読み取りです)、ページビューは各ページビューで読み取られて更新されます。