mysql - 加快 WordPress 缓慢查询速度

标签 mysql wordpress performance

我使用插件 WP Job Manager 为我的网站编写了一个自定义的相关职位空缺查询。使用查询监视器时,我不断发现查询非常慢(5 秒以上)。

我已经实现了查询缓存,但这需要查询至少运行 1 次。

是否可以进一步加快这样的查询速度?

    $location = get_post_meta($id, '_job_location', true);
    $category = get_post_meta($id, 'job_category_wo', true);
    $args = array(
    'post_type'  => 'job_listing',
    'numberposts' => 5,
    'meta_query' => array(
        'relation' => 'OR',
        array(
            'key'     => '_job_location',
            'value'   => $location,
            'compare' => '='
        ),
        array(
            'relation' => 'AND',
            array(
                'key'     => '_job_location',
                'value'   => $location,
                'compare' => '='
            ),
            array(
                'key'     => 'job_category_wo',
                'value'   => $category[0],
                'compare' => 'LIKE'
            )
        )
    )
);
$postslist = get_posts( $args );

最佳答案

在您显示的示例中,您搜索与此条件匹配的帖子:

_job_location = $region OR _job_location = $region AND job_category_wo LIKE $category[0]

您可以将此表达式简化为:

_job_location = $region

bool 代数表示(A) OR (A AND B)是多余的。它与简单的 (A) 相同。

这会排除 OR 运算,这对 SQL 来说很难优化。

P.S.:我认为你的例子中还有其他错误。您设置了变量 $location,但稍后使用 $region。是哪一个?

此外,您没有清理任何值来防止 SQL 注入(inject)。

关于mysql - 加快 WordPress 缓慢查询速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52152173/

相关文章:

mysql - 来自bash脚本的SSH中MYSQL中的嵌套SQL语句

mysql - PROCEDURE 总是返回值

php - 我怎样才能编辑我搞砸了的代码,导致我自己的网站崩溃了?

Python - 1000-2000 个 API 请求

css - 将 CSS 重置为默认状态

mysql - 为每个唯一组设置 auto_increment 值

php - 这是更新用户状态的最佳方式吗?

wordpress - WooCommerce:日期作为属性术语

css - 如何在 WordPress 小部件中注册样式表?

Django性能/内存使用率