【问题标题】:How to decrease load time of join query in wordpress?如何减少wordpress中连接查询的加载时间?
【发布时间】:2015-09-29 08:18:17
【问题描述】:

我正在使用 $wpdb 对象在 WordPress 后循环中显示一些数据。

while ( have_posts() ) : the_post();
    echo '<li>';
    the_title();
    echo '</li>';
endwhile;

我想放入该循环的代码是:

<h3><font color="#F60"><?php
global $wpdb;
$result = $wpdb->get_results($wpdb->prepare( "SELECT * FROM `link` gl, `social` ls WHERE `sd`= 12 AND gl.lik = '$lisd' AND gl.lik_id = ls.lik_id ORDER BY date DESC LIMIT 1" )); 
if (!$result) {
    echo "0";
}
else{
     foreach($result as $row)
    {
        $shares=$row->social_counts;                                            
        echo abbNumber($shares);
    }
}

?>  </font> <font color="#666">SHARES</font></h3>

有什么方法可以使用 ajax 在该循环中运行该查询,或者我可以在页面加载后运行该查询吗?我想减少该查询的加载时间?

【问题讨论】:

    标签: php mysql sql wordpress


    【解决方案1】:

    您好,请尝试以下查询。

    SELECT
        *
    FROM
        `link` gl
    INNER JOIN 
        `social` ls ON gl.lik_id = ls.lik_id
    WHERE
        `sd` = 12
        AND gl.lik = '$lisd'
    ORDER BY
        date DESC
    

    限制 1

    同时在 lik_id 和 lik_id 上添加索引

    【讨论】:

    • 它显示语法错误,还有什么是索引?
    • 检查我是否更新了查询,我错误地添加了一个额外的空间
    • 要创建索引,请在phpmyadmin上执行以下查询..CREATE INDEX lik_id_index ON social (lik_id) USING BTREE;您只需执行一次此查询
    • 好的,现在它可以工作了,它减少了 0.1 秒的加载时间。如果我删除了所有这些查询,那么它会将加载时间减少到 1 秒。我可以通过任何其他方式使其更流畅,例如 Ajax 或 JavaScript 或其他任何方式
    • 你添加索引了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-30
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多