View Categories

Siteground에서 호스팅되는 쿼리 스트림을 사용하는 워드프레스 MySQL 서버

5분 읽기


Query Streams를 사용하면 SiteGround에서 호스팅되는 WordPress 사이트에 MySQL 데이터베이스에 직접 액세스할 수 있습니다. 이를 통해 기술 사용자는 VPN이나 복잡한 방화벽 설정 없이도 Excel 및 Google Sheets를 통해 실시간 SQL 쿼리를 효율적으로 생성하고 공유할 수 있습니다. 이 종합 가이드에서는 Query Streams 에이전트를 SiteGround의 MySQL 환경에 연결하고, 필요한 데이터베이스 자격 증명을 구성하고, wp_posts, wp_users 및 사용자 정의 필드 테이블을 포함한 일반적인 데이터 추출 시나리오에 맞는 효과적인 WordPress 전용 쿼리를 작성하는 데 필요한 핵심 단계를 다룹니다. 올바르게 구성되면 이러한 쿼리를 기술 전문가가 아닌 사용자와 안전하게 공유할 수 있으며, 사용자는 다양한 스프레드시트 추가 기능을 통해 실시간 WordPress 데이터에 쉽게 액세스할 수 있습니다. 이 프로세스를 통해 번거로운 데이터베이스 내보내기나 민감한 자격 증명 공유가 필요 없어지며, 강력한 읽기 전용 보안 조치를 유지할 수 있습니다.

1. 로그인 후 siteground.com 계정으로 이동하세요.

로그인 후 사이트 도구 옵션으로 이동합니다. 사이트 -> MySQL로 이동합니다.

2. 원격 탭을 클릭하세요. 외부 IP 주소가 필요합니다.

Query Streams 에이전트가 실행 중인 네트워크의 외부 IP 주소가 필요합니다. 이 주소를 찾으려면 WhatIsMyIP.com, IPChicken.com 또는 ipinfo.io와 같은 웹사이트를 방문하세요. 에이전트가 설치된 동일한 네트워크/위치에서IP 주소를 확인할 때는 다른 사무실, 가정 네트워크 또는 원격 연결이 아닌 올바른 네트워크 위치에서 확인하고 있는지 확인하십시오.

3. 사용자 탭을 클릭하고 새 사용자를 생성하세요.

해당 사용자를 편집하고, 새 사용자에게 데이터베이스를 추가하는 것을 잊지 마세요.

읽기 전용을 권장합니다.

사용자 이름, 비밀번호, 그리고 데이터베이스를 꼭 기억해 두세요! 나중에 필요할 겁니다.

4. 네트워크 에이전트를 엽니다. https://:1823

데이터 소스 -> 연결 -> + 연결 추가를 클릭합니다.

설정을 저장하세요.

5. Google Sheets 또는 Excel 추가 기능을 엽니다.

이 예시에서는 Google Sheets를 사용하겠습니다.

대부분의 워드프레스 설치에는 임의의 접두사가 사용되므로 데이터베이스 접두사를 확인해야 합니다.

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 'Primary WordPress Installation' WHEN COUNT(*) >= 5 THEN 'Possible WordPress Installation' ELSE 'Plugin/Custom Tables' END as 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;

이제 접두사를 얻으셨습니다.

5. 다음은 실행할 수 있는 몇 가지 예시 쿼리입니다. 접두사를 사용자의 사이트 접두사로 찾기/바꾸기를 꼭 적용하세요.

.

일일 트래픽 개요 (지난 30일간)

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;

방문객 지리적 분포

SELECT CASE WHEN location IS NULL OR location = '' THEN 'Unknown Location' 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 제한 수량 15개;

사용자 행동 및 세션 분석

SELECT CASE WHEN hits = 1 THEN '이탈(1페이지)' WHEN hits BETWEEN 2 AND 3 THEN '빠른 탐색(2-3페이지)' WHEN hits BETWEEN 4 AND 7 THEN '적극적인 방문자(4-7페이지)' WHEN hits BETWEEN 8 AND 15 THEN '매우 적극적인 방문자(8-15페이지)' WHEN hits > 15 THEN '파워 유저(15페이지 이상)' END as engagement_level, COUNT(*) as visitor_count, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) as percentage, ROUND(AVG(hits), 2) as avg_pages_in_group, nxj_statistics_visitor 테이블에서 last_counter가 NOW(), INTERVAL 30 DAY의 DATE_SUB 값 이상인 조건을 만족하는 데이터를 최소 조회수(min_pages)와 최대 조회수(max_pages)로 변환하고, engagement_level을 기준으로 그룹화한 후 avg_pages_in_group으로 정렬합니다.

기기 및 기술 사용 패턴

SELECT CASE WHEN agent LIKE '%Mobile%' OR agent LIKE '%Android%' OR agent LIKE '%iPhone%' OR agent LIKE '%BlackBerry%' THEN 'Mobile' WHEN agent LIKE '%Tablet%' OR agent LIKE '%iPad%' THEN 'Tablet' WHEN agent LIKE '%Windows%' OR agent LIKE '%Macintosh%' OR agent LIKE '%Linux%' OR agent LIKE '%Ubuntu%' THEN 'Desktop' WHEN agent LIKE '%bot%' OR agent LIKE '%Bot%' OR agent LIKE '%spider%' THEN 'Bot/Crawler' ELSE 'Unknown Device' END as device_type, CASE WHEN agent LIKE '%Chrome%' AND agent NOT LIKE '%Chromium%' THEN 'Chrome' WHEN agent LIKE '%Firefox%' THEN 'Firefox' WHEN agent LIKE '%Safari%' AND agent NOT LIKE '%Chrome%' THEN 'Safari' WHEN agent LIKE 'ge%' THEN 'Edge' WHEN agent LIKE '%Opera%' THEN 'Opera' WHEN agent LIKE '%bot%' OR agent LIKE '%Bot%' THEN 'Bot' ELSE 'Other Browser' END as browser_type, COUNT(*) as visits, COUNT(DISTINCT ip) as unique_visitors, SUM(hits) as page_views, ROUND(AVG(hits), 2) as avg_pages_per_visit, ROUND(COUNT(*) * 100.0 / ( SELECT COUNT(*) FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) ), 2) as percentage_of_traffic FROM nxj_statistics_visitor WHERE last_counter >= DATE_SUB(NOW(), INTERVAL 30 DAY) AND agent IS NOT NULL GROUP BY device_type, browser_type ORDER BY visits DESC LIMIT 20;
Updated on 2025년 7월 6일

Powered by BetterDocs