我想在我的数据库中搜索距离经纬度最近的城市&范围。要做到这一点,我使用这个查询:
优化内部加入SQL查询
SELECT ville_nom_reel FROM inspitravel.villes_france_free
WHERE ville_latitude_deg BETWEEN 48.0462165495 AND 48.9471174505
AND ville_longitude_deg BETWEEN -0.45045045045 AND 0.45045045045
该查询在0.0123秒执行。
现在我想在另一个数据库中搜索并从第一个查询中检索ville_nom_reel字段中的5个字段。要做到这一点,我用INNER JOIN:
SELECT villes_france_free.ville_nom_reel, villes_booking.full_name, villes_booking.number_of_hotels, villes_booking.deeplink FROM inspitravel.villes_france_free
INNER JOIN inspitravel.villes_booking ON villes_france_free.ville_nom_reel = villes_booking.full_name
WHERE ville_latitude_deg BETWEEN 48.0462165495 AND 48.9471174505
AND ville_longitude_deg BETWEEN -0.45045045045 AND 0.45045045045
AND ville_population_2012 > 3000 Limit 1
现在这个查询在4秒内执行...
我如何优化呢? 谢谢。
开始时不要使用*,但只声明你想要的5个字段 – apomene
你有关于on子句中涉及的列的索引吗?和ville_population_2012? – scaisEdge
你可以请添加表结构(哪些列是哪种类型)。 – Olli