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

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

홈통 청소 방법 "실패한","취소 된"그리고"완전한"에 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를위한 Facebook", WooCommerce 제품을 Facebook Shops 계정과 자동으로 동기화합니다. 그리고 그는 약 15 분 안에 그것을합니다. 이러한 SQL 항목이 제어되지 않으면 수십만 줄을 얻을 수 있습니다. "wc_facebook_regenerate_feed"in"wp_actionscheduler_actions".

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

상점이 실행중인 WordPress / WooCommerce 테마의 functions / php 파일을 열고 다음을 추가하십시오.

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"에 대한 거대한 테이블에 문제가 없습니다.

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

저자에 관하여

스텔스

모든 가제트와 IT에 대한 열정, 나는 스텔스에 대한 즐거움으로 글을 씁니다.settings.com은 2006 년부터 컴퓨터와 운영 체제에 대한 새로운 것을 발견하고 싶습니다. macOS, Linux, Windows, iOS 및 Android.

코멘트를 남겨