Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP e MySQL melhor maneira de contar visualizações de página para páginas dinâmicas


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.