Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PHP i MySQL najlepszy sposób na liczenie odsłon dla stron dynamicznych

Zazwyczaj struktura tabeli wygląda tak:

strony tabeli:

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

tabela pages_views:

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

gdzie pages_views ma unikalny indeks na page_id

Instrukcja MySQL do zwiększania widoków wygląda następująco:

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

Od pages_views.page_id jest unikalny, wiersz dla strony zostanie utworzony, jeśli nie istnieje; jeśli istnieje (jest to klauzula „duplikat klucza”), licznik zostanie zwiększony.

Wybrałem tutaj dwie oddzielne tabele, ponieważ strony CMS zwykle nie są aktualizowane zbyt często (i dlatego ich ładowanie jest w większości odczytami), podczas gdy odsłony są czytane i aktualizowane, cóż, przy każdym wyświetleniu strony.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Porządkowanie według kolejności wartości w klauzuli SQL IN()

  2. Laravel nie może usunąć ani zaktualizować wiersza nadrzędnego:ograniczenie klucza obcego nie powiodło się

  3. Które wiersze są zwracane przy użyciu LIMIT z OFFSET w MySQL?

  4. Jaki jest najlepszy sposób na generowanie rang w MYSQL?

  5. Czy możliwe jest utworzenie kolumny w MySQL z wyrażeniem jako wartością domyślną?