너무 큰 wp_woocommerce데이터베이스의 _sessions [수정 방법]

다른 기사에서 말했듯이 WooCommerce 점점 더 강력하고 유연한 모듈로 변환할 수 있습니다. WordPress 에서 스타트 업 비즈니스에 이상적인 온라인 스토어.

크기의 온라인 상점 mode스테이트 WooCommerce 또한 사용된 테마가 많은 리소스를 소비하지 않고 다른 모듈(플러그인)을 남용하지 않는 경우 "공유 호스팅"에서 실행할 수 있으며 하루에 5.000개의 제품/100개의 주문을 쉽게 지원할 수 있습니다.

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

얼마 전 크기의 온라인 상점이 mode시작하다 엄청나게 많은 RAM 리소스를 소비하고 CPU 전용 서버에서 풍부한. 이처럼 자원의 높은 소비로 인해 서버의 "로드"가 증가하고 온라인 상점 페이지의로드 시간이 길어졌습니다.

웹 서버에 부당하게 높은로드가 있음을 발견하면 조치를 취하기 전에 원인을주의 깊게 조사하는 것이 좋습니다.

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

wp_가 뭐야?woocommerce_세션?

그의 이름에서 짐작할 수 있듯이 테이블 "wp_woocommerce_sessions”PHP 세션 (PHP 세션).
이러한 세션은 웹 사이트 사용자(또는 웹 로봇)의 작업이며 대부분 쿠키를 통해 데이터베이스에 도달합니다. wp_에서woocommerce_sessions는 사용자가 장바구니에 넣은 제품, 쿠폰, 배송비, 고객 데이터 및 제품 주문 프로세스와 관련된 기타 많은 정보에 대한 데이터를 저장합니다.

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

불행히도 이러한 세션이 항상 삭제되는 것은 아니며 경우에 따라 wp_에 영구적으로 저장됩니다.woocommerce_sessions, 이 테이블이 상당히 큰 볼륨에 도달하게 합니다.

테이블 삭제 방법 wp_woocommerce_sessions SQL에서?

1. 로 이동 대시보드 →  WooCommerce →  Status →  도구 (탭).

2. 옵션 "명확한 고객 세션“. 꼼꼼한! 고객 세션 삭제는 장바구니에 넣은 모든 제품을 삭제하는 것을 의미합니다. 이 세션을 삭제하는 동안 장바구니에 제품이있는 고객이 있으면 사라지고 가능한 온라인 주문이 완료되지 않습니다.

3. "지우기"를 클릭하고 작업을 확인합니다.

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

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

클라이언트 세션이 영구적으로 저장되는 것을 어떻게 중지합니까? WooCommerce - wp_woocommerce_sessions?

위에 표 "wp_woocommerce_sessions"를 데이터베이스에서 제거했지만 며칠 후 클라이언트 세션이 다시 수집되면 문제가 다시 나타납니다.

전에 WooCommerce 2.5, 클라이언트 세션은 나중에 테이블에 저장하기 위해 쿠키를 통해 캡처되었습니다. WordPress "wp_options".
더 큰 상점의 경우 이 방법은 종종 재앙으로 이어졌습니다. "ㅁ_options"의 중요한 테이블이 되는 WordPress, 일반 옵션 및 설정에서 사용합니다. 에 저장된 클라이언트 세션 식별 및 수동 삭제 wp_options 쉬운 일이 아니 었습니다.
공연 WooCommerce 그들은 최고가 아니었고 시간이 지남에 따라 확장성이 민감한 포인트였습니다.

출시와 함께 WooCommerce 2.5년 2015, 개발자 WooCommerce 새로운 세션 처리 및 저장 시스템 도입 WooCommerce를 바탕으로 WP 세션 관리자. 이 시스템은 출현으로 이어졌습니다. wp_woocommerce_sessions. 데이터베이스에서 다른 테이블과 상호 작용하지 않는 클라이언트 세션 전용 테이블입니다. 중대한 오류의 경우 손실이 최소화되어야합니다.

내가 관찰한 바에 따르면 온라인 상점은 이전에 시작되었습니다. WooCommerce 2.5이며 시간이 지남에 따라 지속적으로 업데이트되는 클라이언트 세션 자동 삭제와 관련하여 몇 가지 문제가 있습니다. 최신 버전에 나타난 버그일 가능성이 높습니다. WooCommerce 2.5 또는 플러그인 WordPress / WooCommerce 업데이트를 따라가지 못한 것입니다.

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

나는 것을보고 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();
}

도움이 필요하거나 다른 해결책이 있으면 의견을 남겨주세요.

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

방법 » 비틀기 및 해킹 » 너무 큰 wp_woocommerce데이터베이스의 _sessions [수정 방법]

“너무 큰 wp_에 대한 1개의 생각woocommerce데이터베이스의 _sessions [수정 방법]"

  1. 데이터를 삭제할 방법이 없습니다. 무게가 500mb이고 모든 것을 삭제하는 데 분당 1000mb의 제한이 있습니다. 다시 완전히 채워집니다... .몇 가지 해결책?

    댓글
코멘트 남김