我正在开发一个基于地图的网站,需要获得与一个地方相关的帖子。
每个地方都有一个帖子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