Çok büyük wp_woocommerceVeritabanındaki _sessions [Nasıl Düzeltilir]

Diğer makalelerde de söylediğim gibi, WooCommerce dönüşebilen, giderek daha sağlam ve esnek bir modüldür. WordPress Bir Yeni başlayan bir işletme için ideal çevrimiçi mağaza.

Boyuttaki bir çevrimiçi mağaza için modeste WooCommerce "paylaşılan hosting" üzerinde de çalıştırılabilir, kullanılan tema çok fazla kaynak tüketmiyorsa ve diğer modülleri (eklentileri) kötüye kullanmıyorsanız, günde 5.000 ürün / 100 siparişi kolayca destekleyebilir.

Kaynak kodu optimizasyonu WP Temaları, modüller (WP Eklentileri) ve veritabanı optimizasyonu ayrıca çok dikkatli olmamız gereken iki nokta var.

Geçen gün fark ettim ki, çevrimiçi bir beden mağazası modebaşlar çok fazla RAM kaynağı tüketmek ve CPU özel bir sunucuda cömert. Bu yüksek kaynak tüketimi, sunucuda artan bir "yük"e ve çevrimiçi mağaza sayfalarının uzun bir yükleme süresine yol açtı.

Bir web sunucusunda haksız yere yüksek bir yük olduğunu fark ettiğimizde, herhangi bir işlem yapmadan önce nedenleri dikkatlice araştırmak iyi olur.

Veritabanında tablonun "wp_woocommerce_sessions"Çok büyük. 6 GB'ın üzerindeydi. Normalde toplamda 100 MB'ı aşmayan bir veritabanındaki bir tablo için çok büyük bir hacim.

wp_ nedirwoocommerce_oturumlar mı?

Adından da tahmin edebileceğimiz gibi masa"wp_woocommerce_sessions”PHP oturumları içerir (PHP Oturumları).
Bu oturumlar, web sitesi kullanıcılarının (veya web robotlarının) eylemleridir ve çoğu zaman çerezler aracılığıyla veri tabanına ulaşırlar. wp_ içindewoocommerce_sessions, kullanıcıların alışveriş sepetine koyduğu ürünler, kuponlar, kargo ücretleri, müşteri verileri ve ürün sipariş süreciyle ilgili birçok bilgi hakkında depolanan verilerdir.

Bu oturumlar, kullanıcının siteye kayıtlı olup olmamasına bakılmaksızın oluşturulur ve normalde süresi dolmalı ve bir süre sonra otomatik olarak silinmelidir.

Ne yazık ki, bu oturumların silinmesi her zaman gerçekleşmez ve bazı durumlarda kalıcı olarak wp_ içinde saklanır.woocommerceBu tablonun oldukça büyük bir hacme ulaşmasını sağlayan _sessions.

tablo nasıl silinir wp_woocommerce_sessions SQL'den mi?

1. gitmek Kullanıcı Paneli →  WooCommerce →  Durum →  Tools (sekme).

2. Seçenek için aşağı kaydırın "Müşteri oturumlarını temizle". Dikkatli! Müşteri oturumlarını silmek, alışveriş sepetine koydukları tüm ürünleri silmek anlamına gelir. Bu oturumlar silinirken sepette ürün bulunan müşteriler varsa bunlar kaybolacak ve olası online sipariş tamamlanmayacaktır.

3. "Temizle"ye tıklayın ve işlemi onaylayın.

Şu anda tablo "wp_woocommerce_sessions" boş olduğundan tüm müşteri alışveriş oturumları silinmiştir.

Sorun çözülmekten çok uzak. SQL tablosu wp_woocommerce_sessions, içinde tekrar veri toplayacak ve varsayılan olarak, arzu edilmeyen oranları tekrar alacaktır.

İstemci oturumlarının kalıcı olarak saklanmasını nasıl durdurabiliriz? WooCommerce - wp_woocommerce_sessions?

Yukarıda "wp_" tablosunun nasıl olduğunu gösterdim.woocommerce_sessions", ancak birkaç gün sonra müşteri oturumları tekrar toplandığında sorun tekrar ortaya çıkacaktır.

önce WooCommerce 2.5, müşteri oturumları, daha sonra tabloya kaydedilmek üzere tanımlama bilgileri aracılığıyla alındı WordPress "wp_options".
Daha büyük mağazalar için bu yöntem genellikle felaketlere yol açmıştır. "wp_options”Yaşamsal tablo olmak WordPress, genel seçenekler ve ayarlar tarafından kullanılır. Depolanan istemci oturumlarını belirleme ve manuel olarak silme wp_options kolay bir iş değildi.
performansları WooCommerce en iyisi değillerdi ve zamanla ölçeklenebilirlik hassas bir noktaydı.

lansmanı ile WooCommerce 2.5'te 2015, geliştiriciler WooCommerce yeni bir oturum işleme ve depolama sistemi tanıttı WooCommerceDayanarak WP Oturum Yöneticisi. Bu sistem ortaya çıkmasına neden oldu. wp_woocommerce_sessions. Veritabanındaki diğer tablolarla etkileşime girmeyen, istemci oturumları için ayrılmış bir tablo. Büyük hatalar olması durumunda, kayıplar minimum olmalıdır.

Gözlemlediğim kadarıyla, çevrimiçi mağazalar daha önce açıldı WooCommerce 2.5 ve zaman içinde sürekli güncellemeler alan, müşteri oturumlarının otomatik olarak silinmesiyle ilgili bazı sorunlar var. Büyük olasılıkla daha yeni bir sürümde ortaya çıkan bir hatadır. WooCommerce 2.5 veya bir eklenti WordPress / WooCommerce güncellemelere ayak uyduramayan.

Benim durumumda, dosyaya eklenen bir işlevle bir çakışma oldu. functions.php temanın ve hangi süresi dolmuş oturumlardan sonra otomatik silmeyi önler woocommerce_sessions.
Böyle bir sorunla karşı karşıyaysanız, olası tüm nedenleri dikkatlice araştırmanız gerekir. SQL hatası, SQL izinleri, Cron Job, diğer eklentilerle çakışıyor ve son olarak, zaman içinde kodda yaptığınız değişiklikleri kontrol edin.

bunu gördüm WooCommerce müşteri oturumlarını yönetebilen bir eklentiyi yalnızca 29 ABD Doları karşılığında sunar. "Şunun için Sepeti ve Oturumları Temizle: WooCommerce". Elbette, oturumların programlı olarak silinmesine ek olarak, modülün size yardımcı olabilecek birkaç aracı vardır.

Daha basit bir seçenek zamanlanmış silme "woocommerce_sessions"Birer gün arayla, aşağıdaki kod ile kullanılabilir 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();
}

Yardıma ihtiyacınız varsa veya başka bir çözümünüz varsa yorum bırakın.

Teknolojiye tutkulu, 2006 yılından beri StealthSettings.com'da yazıyorum. macOS, Windows ve Linux işletim sistemlerinde geniş deneyimim var, aynı zamanda programlama dilleri ve blog platformları (WordPress) ile online mağazalar için (WooCommerce, Magento, PrestaShop) bilgi sahibiyim.

nasıl » Tweaks & Hacks » Çok büyük wp_woocommerceVeritabanındaki _sessions [Nasıl Düzeltilir]

1 "üzerine düşünce Çok büyük wp_woocommerceVeritabanında _sessions [Nasıl Yapılır]"

  1. 500mb ağırlığındaki verileri silmek için hiçbir yolum yok ve her şeyi tekrar tamamen doldurmak için dakikada 1000mb sınırım var… .bir çözüm?

    cevap
Leave a Comment