我的数据库中有一个巨大的表,其中包含城市之间的距离。这使我的应用程序能够在选择起始城市时找到世界各地附近的城市。
它包含 4 列:
ID, StartCityID, EndCityID, Distance
并包含大约 1.2 亿行。
我已经在 , 上设置了索引startcityID
,endcityID
另外一个用于startcity + distance
, 和endcity + distance
(这是我第一次真正处理索引,所以不能 100% 确定我是否正确执行)。
无论如何 - 我做了以下两个查询:
Select distinct StartCityID
From Distances where EndCityID = 23485
和
Select distinct EndCityID
From Distances where StartCityID = 20045
它们都返回相同数量的cityID
',但顶部的需要 35 秒才能完成,底部的则立即返回结果。当我查看索引时,它们似乎被设置为startCity
以endCity
相同的方式提供服务。
有谁知道为什么他们的行为可能不同?我很茫然...
注意 - 这可能会提供更多洞察力,但需要 35 秒 - 如果我立即使用相同的 ID 再次按下执行,它也会立即返回结果。
不幸的是,这对我的网站来说还不够好,但它可能是有用的信息。
谢谢