sql >> Database teknologi >  >> RDS >> Mysql

PHP &MySQL bedste måde at tælle sidevisninger på for dynamiske sider

Normalt ser tabelstrukturen sådan ud:

tabelsider:

id | name | ... ========================== 1 Some Page 2 Some Other Page

tabel pages_views:

page_id | views
================
1         1234
2         80
 

hvor pages_views har et unikt indeks på page_id

MySQL-sætningen for at øge visningerne ser derefter ud som følger:

INSERT INTO `pages_views` SET views=1 WHERE page_id=?
    ON DUPLICATE KEY UPDATE views=views+1 ;
 

Siden pages_views.page_id er unik, oprettes rækken for siden, hvis den ikke eksisterer; hvis den eksisterer (det er "duplicate key"-klausulen), vil tælleren blive forøget.

Jeg valgte to separate tabeller her, da CMS-sider normalt ikke opdateres for ofte (og derfor er deres belastning for det meste læst), hvorimod sidevisninger læses og opdateres med hver sidevisning.



  1. Spring JDBC-understøttelse og stort datasæt

  2. Kan nogen hjælpe med at forklare, hvorfor det er dårligt og forkert at bruge en SQL JOIN?

  3. SQL-funktion meget langsom sammenlignet med forespørgsel uden funktionsindpakning

  4. MySQL - Betydning af PRIMÆR NØGLE, UNIK NØGLE og NØGLE, når de bruges sammen under oprettelse af en tabel