[英]What structure must be mysql indexed for my inner join sql statement?
我的Firma表和此聲明有近一百萬條記錄
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索引。
您需要一個索引, where
子句中的所有列。 第一個應該是onay
(由於相等條件)。 第二個條件應該是最嚴格的條件。 其中之一:
firma(onay, uyeliktur, zoom, koordinat)
firma(onay, zoom, uyeliktur, koordinat)
firma(onay, koordinat, uyeliktur, zoom)
僅前兩列直接用於查找where
的行。 其他兩個效率略有差異,因此存在where
。
順便說一句,如果這些實際上是標志,那么您最好說zoom = 1
不是zoom > 0
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.