我有一个记录数为150,000+的相当大的表格。它有许多字段,如country_id、region_id、city_id、latitude、longitude、postal_code等。
我需要根据纬度和经度从这个表格中进行选择,没有其他条件。我的查询语句如下:
SELECT * FROM `mytable`
WHERE `latitude` = '$latitude'
AND `longitude` = '$longitude';
尽管我在从这个表中选择时的唯一标准是纬度/经度,但我想知道是否增加更多的特定性会加快查询速度,例如:
SELECT * FROM `mytable`
WHERE `city_id` = '320'
AND `latitude` = '$latitude'
AND `longitude` = '$longitude';
对我来说,添加更多的查询条件似乎是不符合直觉的,但同时我通过首先确保所选记录都来自我知道的一个特定城市ID,从而大幅缩小了可能结果的数量范围,接下来我将指定纬度和经度范围。
总共可能有约150k条记录,但只有约10k条来自该特定城市。
那么这样做是否明智呢?还是我只是让查询变得更加耗时了?