我想在我的數據庫中搜索距離經緯度最近的城市&範圍。要做到這一點,我使用這個查詢:
優化內部加入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