Rapportering for webstatistics med daglige aggregater
Bygg daglige summer for sidevisninger, land, trafikkilder og crawlere.
Du trenger:
MySQL 8.0+, MySQL Workbench, grunnleggende kjennskap til SELECT/INSERT/UPDATE
Rapportering for webstatistics med daglige aggregater
Bygg daglige summer for sidevisninger, land, trafikkilder og crawlere.
Hvorfor dette er viktig
SQL er ofte stedet der et CMS enten blir stabilt eller begynner å lekke ytelse og datakvalitet. Denne tutorialen viser et mønster som passer WEBoracle sin struktur med kategorier, tags, innhold og controlpanel.
Arbeidsflyt
- Start med å forstå tabellen og indeksene før du skriver endelig spørring.
- Bruk tydelige aliaser og målbare kriterier.
- Test spørringen i MySQL Workbench før den flyttes inn i PHP.
- Unngå sideeffekter i SELECT-spørringer og hold migreringer idempotente.
Eksempel
SELECT c.category_id, c.name, COUNT(t.tutorial_id) AS tutorials_count
FROM categories c
LEFT JOIN tutorials t ON t.category_id = c.category_id
WHERE c.category_type = 'tutorial'
GROUP BY c.category_id, c.name
ORDER BY c.sort_order, c.name;
Kontroll før produksjon
- Er WHERE-delen selektiv nok?
- Finnes riktige indekser?
- Er spørringen trygg for tomme datasett?
- Kan den kjøres flere ganger uten å lage duplikater?