这是我的第一次WooCommerce安装,所以也许我误解了正在发生的事情,但我从谷歌分析中看到的是我上周五发布的网站,昨天有~7500个会话,但会话数量(从wp_options表中的_wp_session_expriry%查询),在过去12小时内,似乎有大约50000个会话,因为我擦除了所有会话。我擦除了会话,因为开箱即用这个表没有索引但是WooCommerce用大量会话数据来打击它,但是杀手是WooCommerce定期删除瞬态数据。事实证明,这些删除中的每一个都需要花费一分钟,表中有300000个会话,因为查询包含LIKE。
到目前为止,我已经检查过机器人不会疯狂,并在Apache日志中翻找,虽然我有一些非常高的点数IP,但我不知道为什么我会得到新的会话对于WooCommerce而不是Google Analytics。 Apache日志显示实际页面匹配与Google Analytics页数一致,因此我怀疑WooCommerce或插件是否存在此问题。
所以现在我通过索引wp_orders并将会话到期时间减少到2小时来减少问题,但这并不能解释为什么我首先会有这么疯狂的会话数。
我正在使用最新的一切:WP 3.9,WC 2.1.7 +以及其他一些WC插件,其中一个附加到WC会话(WooCommerce货币切换器),但它看起来像&#39 ;只是干净利落地进入会话管理。
所以我有一个大问题,然后是更具建筑性的问题:
最重要的一点是:有人可以建议为什么我在wp_options中与GA用户相比会得到这么多会话(数量级)?而且我更自信
然后:有没有一种干净的方法将WC会话移动到一个单独的表中? wp_options似乎不是一个显而易见的选择,因为其他一切都是如何使用它来进行大量的CRUD操作,这些操作需要响应,我希望看到一个woocommerce_sessions表。
答案 0 :(得分:1)
在Woocommerce > System Status > Tools
,清除所有会话
答案 1 :(得分:1)
清除
中的会话的解决方案Woocommerce > System Status > Tools, Clear all sessions
并且还要更改你的Robots.txt以排除机器人启动Woo-Cart :) 搜索引擎机器人扫描所有产品“添加到购物车”按钮,导致它创建一堆额外的购物车会话。
更改你的robots.txt;加上这个:
User-agent: *
Disallow: /*add-to-cart=*
我喜欢的是woocommerce自动清理这个烂摊子!
答案 2 :(得分:1)
我们遇到此问题,数据库为1.3GB!如果它那么大,上面使用"清除所有会话的方法"扼流圈。你需要在mySQL中运行一个查询(几次,直到它们都被清除):
DELETE FROM wp_options
WHERE option_name LIKE '_wc_session_%' OR option_name LIKE '_wc_session_expires_%'
LIMIT 500
或者像这样的插件可能会有所帮助:http://shop.webaware.com.au/downloads/delete-expired-transients/