Query Streams consente l'accesso diretto al database MySQL dei siti WordPress ospitati su SiteGround, permettendo agli utenti tecnici di creare e condividere in modo efficiente query SQL in tempo reale tramite Excel e Fogli Google, senza bisogno di VPN o complesse configurazioni del firewall. Questa guida completa illustra i passaggi essenziali per connettere l'agente Query Streams all'ambiente MySQL di SiteGround, configurare le credenziali di database necessarie e creare query specifiche per WordPress efficaci per i comuni scenari di estrazione dati, inclusi wp_posts, wp_users e tabelle di campi personalizzati. Una volta configurate correttamente, queste query possono essere condivise in modo sicuro con utenti non tecnici, che possono accedere facilmente ai dati WordPress in tempo reale tramite vari componenti aggiuntivi per fogli di calcolo. Questo processo elimina la necessità di complicate esportazioni del database o di condivisione di credenziali sensibili, mantenendo al contempo solide misure di sicurezza di sola lettura.
1. Accedi al tuo account siteground.com.
Dopo aver effettuato l'accesso, vai all'opzione Strumenti sito. Vai a Sito -> MySQL

2. Fai clic sulla scheda Remoto; ti servirà il tuo indirizzo IP esterno.
Avrai bisogno dell'indirizzo IP esterno della rete in cui è in esecuzione l'agente di Query Streams. Per trovarlo, visita siti web come WhatIsMyIP.com, IPChicken.com o ipinfo.io. dalla stessa rete/posizione in cui è installato l'agenteAssicurati di controllare l'indirizzo IP dalla posizione di rete corretta e non da un ufficio diverso, dalla rete domestica o da una connessione remota.

3. Fai clic sulla scheda utenti e crea un nuovo utente

Modifica quell'utente e assicurati di aggiungere un database al nuovo utente.

Consiglio la modalità sola lettura

Prendi nota del tuo nome utente, della password e del database! Ti serviranno.
4. Apri il tuo agente di rete https://:1823
Fai clic su Origini dati -> Connessioni -> + Aggiungi connessione




Salva la tua configurazione.
5. Apri il tuo componente aggiuntivo Fogli Google o Excel
In questo esempio utilizzeremo Fogli Google
Dovrai ottenere il prefisso del tuo database, poiché la maggior parte delle installazioni di WordPress ha un prefisso casuale.
SELECT SUBSTRING_INDEX(table_name, '_', 1) as detected_prefix, COUNT(*) as table_count, GROUP_CONCAT( CASE WHEN table_name LIKE '%_posts' THEN 'posts' WHEN table_name LIKE '%_users' THEN 'users' WHEN table_name LIKE '%_options' THEN 'options' WHEN table_name LIKE '%_comments' THEN 'comments' WHEN table_name LIKE '%_postmeta' THEN 'postmeta' WHEN table_name LIKE '%_usermeta' THEN 'usermeta' END ) as wordpress_core_tables, CASE WHEN COUNT(*) >= 10 THEN 'Installazione WordPress principale' WHEN COUNT(*) >= 5 THEN 'Possibile installazione di WordPress' ELSE 'Tabelle di plugin/personalizzate' END come installation_type FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name LIKE '%_%' GROUP BY SUBSTRING_INDEX(table_name, '_', 1) HAVING wordpress_core_tables IS NOT NULL ORDER BY table_count DESC;

Ora hai il tuo prefisso.
5. Ecco alcune query di esempio da eseguire. Assicurati di trovare/sostituire il prefisso con quello del tuo sito.
.
È importante che tu trovi e sostituisca il tuo prefisso
Riepilogo del traffico giornaliero (ultimi 30 giorni)
SELECT DATE(last_counter) as visit_date, COUNT(DISTINCT ip) as unique_visitors, COUNT(*) as total_visits, SUM(hits) as page_views, ROUND(SUM(hits) / COUNT(DISTINCT ip), 2) as pages_per_visitor, DAYNAME(last_counter) as day_of_week FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY DATE(last_counter) ORDER BY visit_date DESC;
Distribuzione geografica dei visitatori
SELECT CASE WHEN location IS NULL OR location = '' THEN 'Posizione sconosciuta' ELSE location END as visitor_location, COUNT(DISTINCT ip) as unique_visitors, COUNT(*) as total_visits, SUM(hits) as page_views, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) as percentage_of_traffic, ROUND(SUM(hits) / COUNT(*), 2) as avg_pages_per_visit FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY visitor_location ORDER BY unique_visitors DESC LIMIT 15;
Analisi del comportamento e della sessione dell'utente
SELECT CASE WHEN hits = 1 THEN 'Rimbalzo (1 pagina)' WHEN hits BETWEEN 2 AND 3 THEN 'Sfoglia rapida (2-3 pagine)' WHEN hits BETWEEN 4 AND 7 THEN 'Coinvolto (4-7 pagine)' WHEN hits BETWEEN 8 AND 15 THEN 'Molto coinvolto (8-15 pagine)' WHEN hits > 15 THEN 'Utente avanzato (15+ pagine)' END come engagement_level, COUNT(*) come visitor_count, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) come percentuale, ROUND(AVG(hits), 2) come avg_pages_in_group, MIN(hits) come min_pages, MAX(hits) come max_pages FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) GROUP BY engagement_level ORDER BY avg_pages_in_group;
Modelli di utilizzo di dispositivi e tecnologie
SELEZIONA CASO QUANDO agente COME '%Mobile%' O agente COME '%Android%' O agente COME '%iPhone%' O agente COME '%BlackBerry%' ALLORA 'Mobile' QUANDO agente COME '%Tablet%' O agente COME '%iPad%' ALLORA 'Tablet' QUANDO agente COME '%Windows%' O agente COME '%Macintosh%' O agente COME '%Linux%' O agente COME '%Ubuntu%' ALLORA 'Desktop' QUANDO agente COME '%bot%' O agente COME '%Bot%' O agente COME '%spider%' ALLORA 'Bot/Crawler' ALTRIMENTI 'Dispositivo sconosciuto' FINE come device_type, CASO QUANDO agente COME '%Chrome%' E agente NON COME '%Chromium%' ALLORA 'Chrome' QUANDO agente COME '%Firefox%' ALLORA 'Firefox' QUANDO agente COME '%Safari%' E agente NON COME '%Chrome%' ALLORA 'Safari' QUANDO agente COME 'ge%' ALLORA 'Edge' QUANDO agente COME '%Opera%' ALLORA 'Opera' QUANDO agente COME '%bot%' O agente COME '%Bot%' ALLORA 'Bot' ALTRIMENTI 'Altro browser' FINE come browser_type, COUNT(*) come visite, COUNT(DISTINCT ip) come visitatori unici, SUM(hit) come visualizzazioni di pagina, ROUND(AVG(hit), 2) come pagine medie per visita, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 GIORNI) ), 2) come percentuale_del_traffico DA nxj_statistics_visitor DOVE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) E agent IS NOT NULL GROUP BY device_type, browser_type ORDER BY visits DESC LIMIT 20;


