wp_ terlalu besarwoocommerce_sessions di Database [Cara Memperbaiki]

Seperti yang saya katakan di artikel lain, WooCommerce itu adalah modul yang semakin kuat dan fleksibel, mampu berubah WordPress sebuah Toko online yang ideal untuk bisnis pemula.

Untuk ukuran toko online modeSte WooCommerce itu juga dapat dijalankan di "hosting bersama", dapat dengan mudah mendukung 5.000 produk / 100 pesanan per hari, jika tema yang digunakan tidak menghabiskan banyak sumber daya dan Anda tidak menyalahgunakan modul (plugin) lain.

Pengoptimalan kode sumber Tema WP, modul (Plugin WP) dan pengoptimalan basis data ada juga dua aspek yang harus sangat kita perhatikan.

Saya melihat hari lain bahwa toko online ukuran modeitu dimulai untuk mengkonsumsi sumber daya RAM yang sangat banyak dan CPU di server khusus murah hati. Konsumsi sumber daya yang tinggi ini menyebabkan peningkatan "beban" di server dan waktu pemuatan halaman toko online yang lama.

Ketika kami melihat beban tinggi yang tidak dapat dibenarkan pada server web, ada baiknya untuk menyelidiki penyebabnya dengan cermat sebelum mengambil tindakan apa pun.

Dalam database saya perhatikan bahwa tabel "wp_woocommerce_sessions"Itu besar. Itu lebih dari 6 GB. Volume yang sangat besar untuk tabel dalam database yang biasanya tidak melebihi 100 MB secara total.

apa itu wp_woocommerce_sesi ?

Seperti yang bisa kita tebak dari namanya, meja"wp_woocommerce_sessions”Berisi sesi PHP (Sesi PHP).
Sesi ini adalah tindakan pengguna situs web (atau robot web) dan sebagian besar waktu mereka mencapai database melalui cookie. Di wp_woocommerce_sessions adalah data yang disimpan tentang produk yang ditempatkan oleh pengguna di keranjang belanja, kupon, biaya pengiriman, data pelanggan, dan banyak informasi lain yang terkait dengan proses pemesanan produk.

Sesi ini dibuat apakah pengguna terdaftar di situs atau tidak dan biasanya akan kedaluwarsa dan dihapus secara otomatis setelah beberapa saat.

Sayangnya, tidak selalu terjadi bahwa sesi ini dihapus dan, dalam beberapa kasus, tetap disimpan secara permanen di wp_woocommerce_sessions, yang membuat tabel ini mencapai volume yang cukup besar.

Bagaimana cara menghapus tabel? wp_woocommerce_sessions dari SQL?

1. pergi ke Menu Utama →  WooCommerce →  Status →  Tools (tab).

2. Gulir ke bawah ke opsi "Hapus sesi pelanggan“. Cermat! Menghapus sesi pelanggan berarti menghapus semua produk yang mereka masukkan ke keranjang belanja. Jika saat menghapus sesi ini ada pelanggan yang memiliki produk di keranjang, mereka akan menghilang dan kemungkinan pesanan online tidak akan selesai.

3. Klik "Hapus" dan konfirmasikan operasinya.

Saat ini tabel "wp_woocommerce_sessions" kosong, jadi semua sesi belanja pelanggan telah dihapus.

Masalahnya masih jauh dari terpecahkan. tabel SQL wp_woocommerce_sessions akan mengumpulkan data di dalamnya lagi dan secara default akan mendapatkan proporsi lagi, yang tidak diinginkan.

Bagaimana kami menghentikan sesi klien disimpan secara permanen di WooCommerce - wp_woocommerce_sessions?

Saya telah menunjukkan di atas bagaimana tabel "wp_woocommerce_sessions" dari database, tetapi masalah akan muncul lagi setelah beberapa hari ketika sesi klien akan berkumpul kembali.

sebelum WooCommerce 2.5, sesi klien direkam melalui cookie, untuk disimpan di tabel nanti WordPress "wp_options".
Untuk toko yang lebih besar, metode ini sering menyebabkan bencana. “Wp_options”Menjadi meja vital dari WordPress, digunakan oleh opsi dan pengaturan umum. Mengidentifikasi dan secara manual menghapus sesi klien yang disimpan di wp_options itu bukan pekerjaan yang mudah.
Prestasi WooCommerce mereka bukan yang terbaik, dan skalabilitas dari waktu ke waktu adalah titik sensitif.

Dengan peluncuran WooCommerce 2.5 tahun 2015, para pengembang WooCommerce memperkenalkan sistem penanganan dan penyimpanan sesi baru WooCommerceberdasarkan Manajer Sesi WP. Sistem ini menyebabkan munculnya wp_woocommerce_sessions. Tabel khusus untuk sesi klien, yang dalam database tidak berinteraksi dengan tabel lain. Dalam kasus kesalahan besar, kerugian harus minimal.

Dari apa yang saya amati, toko online diluncurkan sebelumnya WooCommerce 2.5 dan yang telah menerima pembaruan konstan dari waktu ke waktu, memiliki beberapa masalah terkait penghapusan otomatis sesi klien. Kemungkinan besar bug yang muncul di versi yang lebih baru WooCommerce 2.5 atau plugin WordPress / WooCommerce yang tidak mengikuti pembaruan.

Dalam kasus saya itu adalah konflik dengan fungsi yang ditambahkan ke file functions.php dari tema, dan yang mencegah penghapusan otomatis setelah waktu sesi kedaluwarsa dari woocommerce_sessions.
Jika Anda menghadapi masalah seperti itu, Anda harus hati-hati menyelidiki semua kemungkinan penyebabnya. Kesalahan SQL, izin SQL, Cron Job, konflik dengan plugin lain dan yang terakhir tetapi tidak kalah pentingnya, periksa perubahan yang Anda buat dalam kode dari waktu ke waktu.

saya melihat bahwa WooCommerce hanya menawarkan $29 sebuah plugin yang mampu mengelola sesi pelanggan. "Kosongkan Keranjang dan Sesi untuk WooCommerce“. Tentu saja, selain penghapusan sesi yang dijadwalkan, modul ini memiliki beberapa alat yang dapat membantu Anda.

Opsi yang lebih sederhana penghapusan terjadwal dari “woocommerce_sessions”Pada interval satu hari, tersedia dengan kode berikut di 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();
}

Tinggalkan komentar jika Anda membutuhkan bantuan atau memiliki solusi lain.

Sebagai pecinta teknologi, saya dengan senang hati menulis di StealthSettings.com sejak tahun 2006. Saya memiliki pengalaman yang kaya dalam sistem operasi: macOS, Windows, dan Linux, serta dalam bahasa pemrograman dan platform blogging (WordPress) dan toko online (WooCommerce, Magento, PrestaShop).

How to » Tweaks & Hacks » wp_ terlalu besarwoocommerce_sessions di Database [Cara Memperbaiki]

1 pemikiran pada “Wp_ terlalu besarwoocommerce_sessions di Database [Cara Memperbaiki]"

  1. Saya tidak punya cara untuk menghapus data yang beratnya 500mb dan saya memiliki batas 1000mb per menit untuk menghapus semuanya terisi penuh lagi… .some solution?

    membalas
Tinggalkan Komentar