2014-09-28 50 views
0

我有近100萬條記錄爲我FIRMA表及本聲明我的內部連接sql語句必須爲mysql索引什麼結構?

SELECT firma.adi,firma.tel, firma.cep, firma.adres, 
      firma.etiket, sehir.ad, ilce.ilce_adi, ustkat.ust_adi 
FROM  firma 
inner  join sektor on sektor.s_fid=firma.id 
inner  join ustkat on ustkat.ust_id=sektor.s_ustid 
inner  join sehir on sehir.id=firma.sehir 
inner  join ilce on ilce.ilceid=firma.ilce 
WHERE  firma.uyeliktur<4 and firma.onay=1 and 
      firma.zoom>0 and firma.koordinat>0 
GROUP BY firma.id 
ORDER BY firma.uyeliktur desc, firma.bastarih desc 

如何使用MySQL索引的這一點。

回答

0

你會想要一個索引與where子句中的所有列。第一個應該是onay(由於平等條件)。第二個應該是最嚴格的條件。其中的一個:

firma(onay, uyeliktur, zoom, koordinat) 
firma(onay, zoom, uyeliktur, koordinat) 
firma(onay, koordinat, uyeliktur, zoom) 

只有前兩列直接用於查找行的where。另外兩個效率很低,所以where值就在那裏。

如果順便說一句,這些實際上是標誌,你最好說zoom = 1zoom > 0

+0

謝謝,我如何在索引後在sql語句中使用它。 – Bagova 2014-09-28 14:12:53

+0

@Bagova。 。 。 SQL引擎自動選擇適當的索引。如果你願意,你可以給它提示,但這不應該是必要的。 – 2014-09-28 14:29:20

相關問題