~에 의해

1

데이터베이스의 너무 큰 WP_WOOCOMMERCE_SESSIONS [사용 방법 수정]

데이터베이스의 너무 큰 WP_WOOCOMMERCE_SESSIONS [사용 방법 수정]

1

다른 기사에서 말했듯이 WooCommerce는 WordPress를 처음에는 비즈니스에 이상적인 온라인 상점.

적당한 규모의 온라인 상점의 경우 WooCommerce를 실행할 수도 있습니다. “공유 호스팅”, 사용되는 테마가 리소스를 많이 소모하지 않고 다른 모듈(플러그인)을 남용하지 않는 경우 하루 5,000개 제품/100개 주문을 쉽게 지원할 수 있습니다.

소스 코드 최적화 테마(WP 테마), 모듈(WP 플러그인) 및 데이터베이스 최적화 또한 우리가 매우 조심해야 할 두 가지 측면이 있습니다.

얼마 전 작은 온라인 상점이 시작되고 있다는 것을 알았습니다. 전용 서버에서 엄청난 양의 RAM 및 CPU 리소스를 소비합니다. 관대한. 이러한 높은 자원 소비는 암묵적으로 다음과 같은 결과를 가져왔습니다. “짐” 서버의 증가와 온라인 상점 페이지의 로딩 시간이 길어졌습니다.

웹 서버의 부하가 터무니없이 높을 경우 조치를 취하기 전에 원인을 주의 깊게 조사하는 것이 좋습니다.

데이터베이스에서 나는 테이블이 “wp_woocommerce_sessions” 엄청나게 큽니다. 6GB가 넘었습니다. 일반적으로 총 100MB를 초과하지 않는 데이터베이스의 테이블에 대한 거대한 볼륨입니다.

wp_woocommerce_sessions란 무엇입니까?

이름에서 알 수 있듯이 테이블은 “wp_woocommerce_sessions” PHP 세션이 포함되어 있습니다(PHP 세션).
이러한 세션은 사이트 사용자(또는 웹 로봇)의 활동이며 대부분 쿠키를 통해 데이터베이스에 저장됩니다. wp_woocommerce_sessions에는 사용자가 장바구니에 담은 제품에 대한 데이터, 쿠폰, 배송비, 고객 데이터 및 기타 제품 주문 프로세스와 관련된 많은 정보가 저장됩니다.

이러한 세션은 사용자가 사이트에 등록되어 있는지 여부에 관계없이 생성되며 일반적으로 잠시 후 자동으로 만료되고 삭제되어야 합니다.

불행하게도 이러한 세션이 항상 삭제되는 것은 아니며 어떤 경우에는 wp_woocommerce_sessions에 영구적으로 저장된 상태로 남아 있어 이 테이블의 용량이 상당히 커집니다.

테이블을 어떻게 삭제하나요? wp_woocommerce_sessions SQL?

1. 우리는 간다 계기반Woocommerce상태도구 (꼬리표).

2. 옵션이 나올 때까지 아래로 스크롤하세요. “고객 세션 지우기“. 주의 깊은! 고객 세션을 삭제한다는 것은 해당 고객이 장바구니에 넣은 모든 제품을 삭제하는 것을 의미합니다. 해당 세션을 삭제하는 동안 장바구니에 제품을 가지고 있는 고객이 있는 경우 해당 고객은 사라지며 가능한 온라인 주문이 완료되지 않습니다.

3. 클릭 “분명한” 그리고 작업을 확인하세요.

이 순간 테이블은 “wp_woocommerce_sessions” 비어 있으므로 모든 고객 쇼핑 세션이 삭제되었습니다.

문제는 해결되지 않았습니다. SQL 테이블 wp_woocommerce_sessions는 데이터를 다시 수집하고 기본적으로 비율을 다시 얻습니다. 이는 바람직하지 않습니다.

WooCommerce에 고객 세션이 영구적으로 저장되지 않도록 하려면 어떻게 해야 하나요? – wp_woocommerce_sessions?

위에서 테이블을 비우는 방법을 보여주었습니다. “wp_woocommerce_sessions” 하지만 며칠 후 클라이언트 세션이 다시 수집되면 문제가 다시 나타납니다.

WooCommerce 2.5 이전에는 고객 세션이 쿠키를 통해 캡처된 후 WordPress 테이블에 저장되었습니다. “wp_options“.
대규모 매장의 경우 이 방법은 종종 재난을 초래했습니다. “wp_옵션” 옵션 및 일반 설정에서 사용되는 WordPress의 필수 테이블입니다. 저장된 고객 세션 식별 및 수동 삭제 wp_options 그것은 결코 쉬운 일이 아니었습니다.
WooCommerce 성능은 최고가 아니었고 시간에 따른 확장성이 민감한 포인트였습니다.

2015년 WooCommerce 2.5가 출시되면서 WooCommerce 개발자는 WooCommerce 세션을 처리하고 저장하는 새로운 시스템을 도입했습니다. WP 세션 관리자. 이 시스템이 등장하게 된 계기가 되었습니다. wp_woocommerce_sessions. 데이터베이스에서 다른 테이블과 상호 작용해서는 안 되는 클라이언트 세션 전용 테이블입니다. 중대한 오류가 발생한 경우 손실은 최소화되어야 합니다.

제가 관찰한 바에 따르면 WooCommerce 2.5 이전에 출시되어 시간이 지남에 따라 지속적인 업데이트를 받은 온라인 상점에는 고객 세션 자동 삭제와 관련된 몇 가지 문제가 있습니다. 최신 버전의 WooCommerce 2.5 또는 업데이트가 유지되지 않는 WordPress/WooCommerce 플러그인에 나타난 버그일 가능성이 높습니다.

내 경우에는 파일에 추가된 기능과 충돌이 발생했습니다. functions.php 주제와 그 내용 세션이 만료된 후 자동 삭제를 방지합니다. woocommerce_sessions.
이러한 문제가 발생하면 가능한 모든 원인을 주의 깊게 조사해야 합니다. SQL 오류, SQL 권한, Cron 작업, 다른 플러그인과의 충돌 및 마지막으로 시간 경과에 따른 코드 변경 사항을 확인하세요.

WooCommerce가 고객 세션을 관리할 수 있는 플러그인을 단 29달러에 제공하는 것을 보았습니다. “WooCommerce의 장바구니 및 세션 지우기“. 물론, 예약된 세션 삭제 외에도 모듈에는 도움이 될 수 있는 여러 도구가 있습니다.

더 간단한 옵션 예약된 삭제 “woocommerce_sessions” 하루 간격으로는 다음 코드와 함께 사용할 수 있습니다. functions.php:

// clean cart every day
if (!wp_next_scheduled('cron_wc_clean_cart')) {
    wp_schedule_event( time(), 'daily', 'cron_wc_clean_cart' );
}

add_action ( 'cron_wc_clean_cart', 'wc_clean_session_cart' );
function wc_clean_session_cart() {
    global  $wpdb;

    $wpdb->query( "TRUNCATE {$wpdb->prefix}woocommerce_sessions" );
    $wpdb->query( "DELETE FROM {$wpdb->usermeta} WHERE meta_key='_woocommerce_persistent_cart_" . get_current_blog_id() . "';" );
    wp_cache_flush();
}

도움이 필요하거나 다른 해결 방법이 있으면 댓글을 남겨주세요.

데이터베이스의 너무 큰 WP_WOOCOMMERCE_SESSIONS [사용 방법 수정]

당신은 또한에 관심이있을 수 있습니다 ...

한 가지 생각 “데이터베이스의 너무 큰 WP_WOOCOMMERCE_SESSIONS [사용 방법 수정]

  1. 카를로스 말한다:

    데이터를 삭제할 방법이 없습니다. 무게는 500MB이고 제한은 1000MB입니다. 다 삭제하는 순간 다시 꽉 차더라구요.….어떤 해결책이 있나요?

답장을 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필요한 필드가 표시됩니다 *