거대한 SQL 테이블 수정: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce 팁]

WooCommerce 널리 사용되는 모듈이되었습니다. 온라인 상점. SEO, 제품 및 재고 관리, 깨끗하고 직관적인 코드, 간단한 관리 인터페이스 및 Woo를 위해 개발된 수천 개의 플러그인은 온라인 상점 개발을 생각할 때 기회가 필요한 이유 중 일부에 불과합니다.

여느 CMS와 마찬가지로 Woo도 다양한 사용 또는 다른 플러그인과의 상호 작용 시나리오에서 발생할 수 있는 기이함의 예외가 아닙니다. WordPress.
리소스 서버에서 하드웨어 꽤 관 대해서 데이터베이스 서비스 (mysqld를) 거의 80-90 %의 RAM이 필요합니다. 꽤 심각한 문제입니다. 왜냐하면 110 오류가 주기적으로 발생하는 곳을 이해하지 못했기 때문입니다.110 : 연결 시간이 초과되었습니다.).
SQL 프로세스를 자세히 살펴보면 데이터베이스에 상당히 많은 양의 테이블이 두 개 있음을 발견했습니다. wp_actionscheduler_actions si wp_actionscheduler_logs.

일반적으로 예약 된 작업WooCommerce 액션 스케줄러 실행 후 자동으로 삭제되어야합니다. 이것은 항상 발생하는 것은 아니며 wp_actionsscheduler_actions에 다음 상태로 갇혀 있습니다. 실패한, 취소 된, 대기 또는 완전한.

위 이미지에서 테이블 "wp_actions스케줄러"그들은 15MB 이상. 스크린 샷을 찍을 때 영감을받지 못해서 죄송합니다. 1.2 GB. 그럼에도 불구하고 프로그래밍된 작업을 포함하는 테이블의 경우 15MB는 상당히 많습니다. WooCommerce.
이 "부풀어 오른"테이블은 WP-Cron은 항목을 삭제하지 않습니다. 상태 "실패한","취소 된"그리고"완전한“. 일반적으로 이러한 항목은 데이터베이스에서 자동으로 삭제되어야합니다.
예약 된 작업과 그 상태를 매우 쉽게 볼 수 있습니다. WooCommerce →  Status →  예약 된 작업.

홈통 청소 방법 "실패한","취소 된"그리고"완전한"에 wp_actionscheduler_actions si wp_actionscheduler_logs

phpMyAdmin을 통해 데이터베이스에 액세스한 다음 SQL에서 차례로 명령줄을 실행합니다.

DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'canceled'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'complete'
DELETE FROM `wp_actionscheduler_actions` WHERE `status` = 'failed'

이 테이블이 정리되면 문제가 해결 된 것은 아닙니다. 위에서 말했듯이 주요 원인은 여러 가지 이유로 WP-Cron 서비스를 비활성화하는 것입니다. 따라서 "좀비"상태의 항목은 더 이상 삭제할 수 없습니다.
온라인 상점이 있는 경우 WooCommerce, 플러그인 "을 통해 Facebook Shops에 연결됩니다.페이스 북 WooCommerce"에서 제품을 자동으로 동기화합니다. WooCommerce Facebook Shops 계정으로. 그리고 그는 15분마다 그것을 한다. 이러한 SQL 항목을 제어하지 않으면 수십만 줄을 얻을 수 있습니다."wc_facebook_regenerate_feed"in"wp_actionscheduler_actions".

이 간격은 주문이 많은 상점에 적합하며 Facebook Shops 제품의 재고를 지속적으로 업데이트해야합니다. 여전히 Facebook과 상점 간의 이러한 동기화가 24 시간마다 한 번씩 수행 될 수 있다고 생각한다면 아래 코드 줄이 도움이 될 수 있습니다.

테마의 functions.php 파일을 엽니다. WordPress / WooCommerce 상점이 운영되는 곳에서 다음을 추가하십시오.

add_filter( 'wc_facebook_feed_generation_interval', function(){ return HOUR_IN_SECONDS * 24; } );

아래에서 자동 청소 간격을 XNUMX 주일로 설정할 수 있습니다.

add_filter( 'action_scheduler_retention_period', 'wpb_action_scheduler_purge' );
function wpb_action_scheduler_purge() {
 return WEEK_IN_SECONDS;
}

이러한 변경 사항을 저장하면 "wp_actionscheduler_actions"에 대한 거대한 테이블에 문제가 없습니다.

기술 애호가로서, 2006년부터 StealthSettings.com에서 기쁨을 가지고 글을 쓰고 있습니다. macOS, Windows, Linux 등 다양한 운영 체제에 대한 풍부한 경험이 있으며 프로그래밍 언어 및 블로깅 플랫폼 (WordPress)과 같은 분야에도 정통하고 있습니다. 온라인 스토어 (WooCommerce, Magento, PrestaShop)를 포함하여 여러 분야에서 경험이 있습니다.

방법 » Curiosity » 거대한 SQL 테이블 수정: wp_actionscheduler_actions & wp_actionscheduler_logs [WooCommerce 팁]

"거대한 SQL 테이블 수정: wp_actionscheduler_actions & wp_actionscheduler_logs에 대한 1개의 생각 [WooCommerce 팁]"

  1. @Stealth
    hjælpen에 대한 탁. Du redder min dag og shop. Jeg opdagede først dette efter et nedbrud af min webshop. Mange plugins er begyndt at dumpe deres output i den tabel og det fylder… 9.2GB tabel fik min host til at opgive hans ellers fine opp-tid. 뉴 트리머 jeg med den fine kode!
    Lige et spørgsmål på falde rebet denne tabel "wpb_action_scheduler_purge"er det en default 내가 db'en eller skal jeg evt. noget i min (default hedder min db ikke 'wp_') eller er det måske en funktion?
    hjælpen og den super fine artikel에 대한 Tak

    힐센
    네지

    댓글
코멘트 남김