怎么可能在 EXPLAIN 中有一个好的计划,如下所示并且查询速度很慢。几行,使用索引,没有文件排序。
查询在 9 秒内运行。主表有大约 500k 行。
当我在该表中有 250k 行时,查询在 < 1 秒内运行。
建议吗?
查询(1. 可以根据用户选择启用注释字段。2. 没有 FORCE INDEX 我得到了 14 秒。3. SQL_NO_CACHE 我用来防止错误结果):
SELECT SQL_NO_CACHE
p.property_id
, lct.loc_city_name_pt
, lc.loc_community_name_pt
, lc.loc_community_image_num_default
, lc.loc_community_gmap_longitude
, lc.loc_community_gmap_latitude
FROM property as p FORCE INDEX (ix_order_by_perf)
INNER JOIN loc_community lc
ON lc.loc_community_id = p.property_loc_community_id
INNER JOIN loc_city lct FORCE INDEX (loc_city_id)
ON lct.loc_city_id = lc.loc_community_loc_city_id
INNER JOIN property_attribute pa
ON pa.property_attribute_property_id = p.property_id
WHERE p.property_published = 1
AND (p.property_property_type_id = '1' AND p.property_property_type_sale_id = '1')
AND p.property_property_housing_id = '1'
-- AND p.property_loc_community_id = '36'
-- AND p.property_bedroom_id = '2'
-- AND p.property_price >= '50000' AND p.property_price <= '150000'
-- AND lct.loc_city_id = '1'
-- AND p.property_loc_subcommunity_id IN(7,8,12)
ORDER BY
p.property_featured DESC
, p.property_ranking_date DESC
, p.property_ranking_total DESC
LIMIT 0, 15
查询配置文件
结果集总是输出 15 行。但是 table 属性和 property_attribute 大约有 500k 行。
谢谢大家,
阿曼多·米亚尼