Woocommerce Slow Queries

时间:2018-03-23 作者:Altravista

我对woocommerce的查询速度很慢。

SELECT post_id, meta_key, meta_value
FROM wp_postmeta
WHERE post_id IN (116263,116253,116237,116197,116187,116177,116167,116157,116147,116137,116127,116117,116107,116097,116087,116079,116071,116063,116055,116047,116039,116031,116023,116015,116007,115999,115991,115983,115975,115967,115959,115951,115943,115935,115927,115919,115911,115903,115893,115883,115873,115863,115853,115843,115833,115825,115815,*****)
总计行513394

组件插件:woocommerce

呼叫者

执行操作(“wp\\u加载”)wp包括/插件。php:453 WC\\u Cart\\u Session->get\\u Cart\\u from\\u Session()

  • wp content/plugins/woocommerce/includes/class WC Cart Session。php:95可购买的WC\\u产品()。php:1458
  • WC\\u产品->获取价格()
  • wp内容/插件/woocommerce/包含/摘要/抽象WC产品。php:275
  • WC\\u数据->获取属性()
  • wp内容/插件/woocommerce/包含/摘要/抽象WC数据。php:694apply\\u filters(\'woocommerce\\u product\\u get\\u price\')
  • 时间1.0919

    有没有办法减少查询时间?

    1 个回复
    SO网友:mopsyd

    是的,有三件事。

    A) 你有一个机器人或一个**洞的网络爬虫在你的网站上爬行,并创建了大量的bunk checkout缓存。您需要投资于像Sucuri或Wordfence这样的web应用程序防火墙(使用付费版本,而不是免费版本)。如果你不这样做,你会一次又一次地遇到这个问题,一次又一次,无限期地。您还需要检查服务器的访问日志,并在很短的时间内阻止任何有大量请求的IP地址,除非它们是google、bing、yandex或其他您关心的搜索引擎优化搜索提供商。如果他们不是,他们要么在嗅探你的网站漏洞来偷钱,要么试图窃取你的目录/图片等,因为他们经营着一家克隆商店,而且他们懒得自己动手。无论哪种方式,他们都需要被阻止,WAF(Sucuri或Wordfence)将确保他们在不可避免地更改IP并重试时很快再次被阻止。

    B) 您需要刷新缓存。下面的查询应该可以做得很好:

    DELETE FROM wp_options
    WHERE option_name LIKE \'_wc_session_%\' OR option_name LIKE \'_wc_session_expires_%\'
    
    你的一些合法客户可能会有点抱怨。然而,如果你不这样做,你的网站最终会崩溃,你的数据库会被破坏,无法恢复,这是更糟糕的。如果需要备份,请在执行此操作之前运行SQL转储,但缓存几乎都是垃圾,所以这并不重要。

    C) 您需要确保wp cron正常工作,以便按照适当的时间表刷新缓存。确保安装中的任何位置都不存在以下行:

    define(\'DISABLE_WP_CRON\', \'true\');
    
    你可以grep 让它很快做到这一点。

    为了确保这不会成为一个重复出现的问题,明智的做法是设置像CloudFlare或CloudFront这样的CDN来缓存所有产品页面,但不缓存签出页面,以及not 将产品的标题或Cookie转发到您的站点,除非当前未缓存这些标题或Cookie。然后,您将Woo设置为只允许登录用户使用购物车,这使得机器人无法访问购物车。如果你这样做的话,让人们登录谷歌或facebook通常是个好主意,这样你就不会从那些不喜欢登录麻烦的客户那里得到太多的回扣。

    结束

    相关推荐