Veritabanında çok büyük wp_woocommerce_sessions [Nasıl Yapılır]

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

Mütevazı bir çevrimiçi mağaza için, WooCommerce "paylaşılan bir barındırma" üzerinde çalıştırılabilir ve kullanılan tema çok fazla kaynak tüketmiyorsa ve diğer modülleri (eklentiler) kötüye kullanmıyorsa, 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 mütevazı bir çevrimiçi mağazanın başladığını fark ettim. ç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_woocommerce_sessions nedir?

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

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 ve bazı durumlarda kalıcı olarak wp_woocommerce_sessions içinde saklanmaları her zaman böyle değildir, bu da bu tabloyu oldukça büyük kılmaktadır.

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.

Bu noktada "wp_woocommerce_sessions" tablosu boştur, bu nedenle tüm müşteri alışveriş oturumları silinmiştir.

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

Müşteri oturumlarının WooCommerce'de kalıcı olarak depolanmasını nasıl durdururuz - wp_woocommerce_sessions?

Yukarıda "wp_woocommerce_sessions" tablosunun veritabanından nasıl boşaltılabileceğini gösterdik ancak müşteri oturumlarının tekrar toplanacağı birkaç gün sonra sorun tekrar ortaya çıkacaktır.

WooCommerce 2.5'ten önce, müşteri oturumları çerezler aracılığıyla yakalanır ve ardından tabloya kaydedilirdi. 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.
WooCommerce performansı en iyi değildi ve zaman içinde ölçeklenebilirlik hassas bir noktaydı.

WooCommerce 2.5'in 2015'te piyasaya sürülmesiyle birlikte, WooCommerce geliştiricileri, temel olarak yeni bir WooCommerce oturum işleme ve depolama sistemi tanıttı. 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ördüğüm kadarıyla, WooCommerce 2.5'ten önce başlatılan ve zaman içinde sürekli güncellemeler alan çevrimiçi mağazalar, müşteri oturumlarının otomatik olarak silinmesiyle ilgili bazı sorunlar yaşıyor. Büyük olasılıkla, WooCommerce 2.5'in daha yeni bir sürümünde veya bir eklentide görünen bir hatadır. WordPress / Güncellemelere ayak uyduramayan WooCommerce.

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.

WooCommerce'in bunu yapabilen bir eklentiyi yalnızca 29 dolara sunduğunu gördüm. adminstres müşteri oturumları. “WooCommerce için Sepeti ve Oturumları Temizle". 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.

nasıl » Tweaks & Hacks » Veritabanında çok büyük wp_woocommerce_sessions [Nasıl Yapılır]

Teknoloji konusunda tutkulu, işletim sistemleri hakkında test etmeyi ve öğreticiler yazmayı seviyorum macOS, Linux, Windowshakkında WordPress, WooCommerce ve LEMP web sunucularını yapılandırın (Linux, NGINX, MySQL ve PHP). üzerine yazıyorum StealthSettings.com'da 2006'dan beri ve birkaç yıl sonra, ekosistemdeki cihazlar hakkında iHowTo.Tips eğitimleri ve haberleri yazmaya başladım. Apple: iPhoneiPad, Apple İzle, HomePod, iMac, MacBook, AirPod'lar ve aksesuarlar.

“Veritabanında çok büyük wp_woocommerce_sessions [Nasıl Yapılır]” üzerine 1 düşünce

  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