将wp_post与查找表连接时查询速度慢吗?

时间:2014-06-08 作者:Jonas Stensved

我正在开发一个基于地图的网站,需要获得与一个地方相关的帖子。

每个地方都有一个帖子wp_posts 其他相关帖子(每个地方的图像等)使用自定义查找表与该地方相关联wp_lookup_places 按post\\u id。

如何在ms中查询结果?我认为mysql基于索引整数进行过滤是一项简单的任务?

查找中的行数:774 202 db中的帖子总数:1 073 777

当前执行时间:约33秒

我的查找表:

CREATE TABLE wp_lookup_places (
    post_id bigint(20),
    place_id bigint(20),
    PRIMARY KEY (post_id, place_id)
);
来自扩展的查询WP_Query 使用posts_where 用于放置的过滤器post_id 638891.

SELECT   wp_posts.ID 
FROM wp_posts 
INNER JOIN wp_lookup_places ON  (wp_lookup_places.post_id = wp_posts.ID AND wp_lookup_places.place_id = 638891)  
WHERE 1=1  
AND (wp_posts.post_status = \'publish\' OR wp_posts.post_status = \'private\') 
ORDER BY wp_posts.post_title ASC LIMIT 0, 250;
以上查询及解释:

******************** 1. row *********************
           id: 1
  select_type: SIMPLE
        table: wp_posts
         type: ref
possible_keys: PRIMARY,type_status_date
          key: type_status_date
      key_len: 62
          ref: const
         rows: 532062
        Extra: Using index condition; Using where; Using filesort
******************** 2. row *********************
           id: 1
  select_type: SIMPLE
        table: wp_bb_places
         type: eq_ref
possible_keys: PRIMARY
          key: PRIMARY
      key_len: 16
          ref: server01.wp_posts.ID,const
         rows: 1
        Extra: Using where; Using index

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

这是主键声明的顺序。如果你一直在搜索place_id, 首先声明,然后post_id:

PRIMARY KEY (place_id, post_id)

结束

相关推荐

当WP_QUERY只返回1个帖子时,我如何自动重定向到该帖子?

我已经四处搜索了几个小时,不知道该怎么做。看起来很简单。我已经看到了很多多余的例子,说明了当搜索结果只返回一篇文章时如何重定向到一篇文章,但是如果我设置了一个自定义WP\\U查询,以仅通过自定义字段/元框值显示文章,并且如果只有一篇文章具有该值,那么重定向到该文章会怎么样?到目前为止,我已经在页面模板上设置了一个自定义WP\\U查询,它可以实现我想要的功能,但我无法理解条件重定向部分:<?php $rawfiltertag = get_post_meta($post->ID, \'_c