WP_Options table MySQL 数据库超过 360Mb - 我可以通过删除 WC_sessions 来减小大小吗?

WP_Options table in MySQL database is over 360Mb - can I reduce the size by deleting WC_sessions?

我有一个 Wordpress/woocommerce 商店,我正在尝试清理一下,因为它在后端非常缓慢。

在调查时我发现我的 wp_options table 一个人的大小就超过 360 MB(我不知道什么是正常的,但看起来很大)通过随机抽查,似乎几乎完全充满了这样的 woocommerce 会话: _wc_session_119a59e205553cc7d91bbf19b0b64768 和 wc_max_related 没有过期时间。

考虑到我在过去 2 或 3 天内只有大约 30 个客户,这似乎很多,我担心这会减慢我的管理面板。在当前网站上没有人的情况下一次删除所有 wc_sessions 是否安全?如果是这样,我是否通过在 woocommerce-> 系统状态-> 工具中执行 'clear all sessions' 来做到这一点?我不想删除客户订单或类似的东西,但我的理解是这些只是打开的购物车等。

您没有说明您使用的是哪个版本的 WooCommerce 运行,但通常有 2 个原因导致客户会话多于预期:

  1. CRON 任务不工作
  2. 机器人访问站点并创建多个会话

客户会话在 WooCommerce 中存储 48 小时。

针对您的情况的补救措施已发布在这个 Whosebug 问题中: woocommerce generating more sessions than users

UPDATE: With WooCommerce 2.5 woocommerce-large-sessions has been merged into core.

对于我的一些客户,CRON 任务有效,我们阻止了机器人从网站的添加到购物车。 wc_sessions 仍然失控。我发现这个插件是因为在 wp_options table 中存储 wc_sessions 导致选项缓存出现问题而创建的。

此插件将 wc_sessions 从 wp_options 移入它自己的 table 并每小时执行一次自己的清理。*

插件:https://github.com/kloon/woocommerce-large-sessions

  • 我刚开始使用它,所以我会回来确认它是否有效。