Zu große wp_woocommerce_Sessions in der Datenbank [How-to-Fix]
Wie ich in anderen Artikeln sagte, ist WooCommerce ein robusteres und flexibleres Modul, das WordPress in a verwandeln kann Idealer Online -Shop für ein Unternehmen zu Beginn.
Inhalt
Für einen Online-Shop von bescheidener Größe kann WooCommerce auch auf einem ausgeführt werden “Shared-Hosting”Damit können problemlos 5.000 Produkte / 100 Bestellungen pro Tag unterstützt werden, wenn das verwendete Theme nicht viele Ressourcen verbraucht und Sie keine anderen Module (Plugins) missbrauchen.
Optimierung des Quellcode Aus dem Thema (WP -Themen), Modulen (WP -Plugins) und Optimierung der Datenbank Es gibt auch zwei Aspekte, die wir viel nehmen müssen.
Ich bemerkte die vergangenen Tage, als ein Online -Shop bescheidener Dimensionen beginnt Um viele RAM- und CPU -Ressourcen auf einem dedizierten Server zu konsumieren großzügig. Dieser hohe Ressourcenverbrauch führte implizit zu a “laden” erhöhte Serverbelastung und eine lange Ladezeit der Online-Shop-Seiten.
Wenn wir eine ungerechtfertigte große Last auf einem Webserver bemerken, ist es gut, die Ursachen zu untersuchen, bevor wir eine Maßnahme ergreifen.
In der Datenbank ist mir aufgefallen, dass die Tabelle “wp_woocommerce_sessions” es ist enorm groß. Es waren über 6 GB. Ein riesiges Volumen für eine Tabelle in einer Datenbank, das normalerweise insgesamt 100 MB nicht überschreitet.

Dieses Este wp_woocommerce_ssionals?
Wie der Name schon vermuten lässt, handelt es sich um einen Tisch “wp_woocommerce_sessions” enthält PHP-Sitzungen (PHP -Sitzungen).
Diese Sitzungen sind Aktionen von Benutzern auf der Website (oder Webrobotern) und erreichen die Datenbank am häufigsten über Cookies. In den WP_WOOCOMERCE_SESSIONs werden Daten zu den Produkten gespeichert, die von Benutzern im Einkaufswagen, Gutscheinen, Transportgebühren, Kundendaten und viele andere Informationen zum Produktbestellprozess aufgestellt werden.
Diese Sitzungen werden auch erstellt, ob der Benutzer auf der Website registriert ist oder nicht, und normalerweise müssen er automatisch ausfallen und löschen.
Leider geschieht es nicht immer, dass diese Sitzungen gelöscht werden und in einigen Fällen dauerhaft in WP_WOOCommerce_Sessions gespeichert werden, wodurch die Tabelle ein großes Volumen erreicht.
Wie man den Tisch abwischt wp_woocommerce_sessions Din Sql?
1. Wir gehen zu Armaturenbrett → Woocommerce → Status → Werkzeuge (Tab).
2. Scrollen Sie nach unten zur Option “Klare Kundensitzungen“. Vorsichtig! Das Löschen von Kundensitzungen bedeutet, dass alle von ihnen in den Warenkorb gelegten Produkte gelöscht werden. Wenn sich beim Löschen dieser Sitzungen Kunden befinden, die Produkte im Warenkorb haben, verschwinden diese und die mögliche Online-Bestellung wird nicht abgeschlossen.
3. Klicken Sie “Klar” und bestätigen Sie den Vorgang.

In diesem Moment der Tisch “wp_woocommerce_Sessions” ist leer, daher wurden alle Kundeneinkaufssitzungen gelöscht.
Das Problem wird bei weitem nicht gelöst. Die Tabelle SQL WP_wooCommerce_Sessions sammelt Daten darin und erhält standardmäßig erneut Proportionen, was nicht wünschenswert ist.
Wie verhindern wir, dass Kundensitzungen dauerhaft in WooCommerce gespeichert werden? – wp_woocommerce_sessions?
Ich habe oben gezeigt, wie der Tisch geleert werden kann “wp_woocommerce_Sessions” aus der Datenbank, aber das Problem wird nach ein paar Tagen wieder auftreten, wenn die Client-Sitzungen wieder stattfinden.
Vor WooCommerce 2.5 wurden Kundensitzungen über Cookies erfasst und dann in der WordPress-Tabelle gespeichert “wp_options“.
Bei größeren Geschäften führte diese Methode oft zu Katastrophen. “wp_options” ist die wichtigste Tabelle von WordPress, die von Optionen und allgemeinen Einstellungen verwendet wird. Identifizierung und manuelle Löschung der gespeicherten Kundensitzungen wp_options Es war keine leichte Arbeit.
Die WooCommerce -Leistung war nicht die beste und die Skalierbarkeit im Laufe der Zeit war ein empfindlicher Punkt.
Mit dem Start von WooCommerce 2.5 im Jahr 2015 haben WooCommerce -Entwickler ein neues WooCommerce -Basis -Handhabungs- und Speichersystem eingeführt WP Sessions Manager. Dieses System hat zum Aussehen geführt wp_woocommerce_sessions. Eine spezielle Tabelle für Kundensitzungen, die in der Datenbank nicht mit anderen Tabellen interagiert. Bei größeren Fehlern sollten die Verluste minimal sein.
Nach dem, was mir auffiel, haben die Online -Stores, die vor WooCommerce 2.5 gestartet wurden und die im Laufe der Zeit ständige Aktualisierungen erhalten haben, einige Probleme hinsichtlich der automatischen Löschung der Kundensitzungen. Es geht höchstwahrscheinlich um einen Fehler auf einer neueren Version von WooCommerce 2.5 oder einem WordPress / WooCommerce -Plugin, das mit den Updates nicht Schritt gehalten hat.
In meinem Fall war es ein Konflikt mit einer in der Datei hinzugefügten Funktion functions.php des Themas und welche Verhindern Sie die automatische Löschung nach abgelaufener Sitzungen in woocommerce_sessions.
Wenn Sie ein solches Problem haben, müssen Sie alle möglichen Ursachen sorgfältig untersuchen. SQL -Fehler, SQL -Verfolgungen, Cron -Job, Konflikt mit anderen Plugins und überprüft nicht zuletzt Ihre Änderungen im Code im Laufe der Zeit.
Ich habe gesehen, dass WooCommerce für nur 29 US-Dollar ein Plugin anbietet, mit dem sich Kundensitzungen verwalten lassen. “Clear Cart und Sitzungen für WooCommerce“. Natürlich verfügt das Modul neben dem geplanten Löschen von Sitzungen über mehrere Tools, die Ihnen helfen können.
Eine einfachere Option von geplante Löschung a “woocommerce_sessions” im Abstand von einem Tag, ist die Verschiebung mit dem nächsten Code in 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();
}
Hinterlassen Sie einen Kommentar, wenn Sie Hilfe benötigen oder eine andere Lösung haben.
Zu große wp_woocommerce_Sessions in der Datenbank [How-to-Fix]
Was ist neu
Um Stealth
Technologiebegeistert schreibe ich seit 2006 gerne auf StealthSettings.com. Ich habe umfangreiche Erfahrungen mit Betriebssystemen wie macOS, Windows und Linux sowie mit Programmiersprachen, Blogging-Plattformen (WordPress) und Online-Shops (WooCommerce, Magento, PrestaShop).
Alle Beiträge von Stealth anzeigenVielleicht interessieren Sie sich auch für...
Ein Gedanke dazu “Zu große wp_woocommerce_Sessions in der Datenbank [How-to-Fix]”
Ich habe keine Möglichkeit, die Daten zu löschen. Es wiegt 500 MB und ich habe ein Limit von 1000 MB. Sobald ich alles lösche, füllt es sich wieder vollständig.….irgendeine Lösung?