我有一個表foo它記錄鳥類的目擊。 foo_id是它的PK,其他有關的列是s_date,緯度和經度。 species_id是它的FK。我有索引s_date,經度和緯度species_id。表富有2000萬條記錄並且在不斷增加。 以下查詢給出了給定緯度/長度的前10個最新物種目擊。查詢花費的時間太多(有時候超過10分鐘)。如何優化它?我正在使用mysql。優化查詢
SELECT species_id, max(s_date)
FROM foo
WHERE latitude >= minlat
AND latitude <= maxlat
AND longitude >= minlon
AND longitude <= max lon
GROUP BY species_id
ORDER BY MAX(s_date) DESC LIMIT 0, 10;
另外適當的索引,有沒有一大堆優化... – 2010-09-23 19:11:13
是species_id一個真正的FK,與它的索引和約束,或FK只是它的暱稱? – Midhat 2010-09-23 19:13:00
我認爲FK「暱稱」更適合它的定義 – androidharry 2010-09-23 19:24:54