Php 对于我的内部join sql语句,mysql必须索引什么结构?
我的firma表和这份声明有近100万条记录Php 对于我的内部join sql语句,mysql必须索引什么结构?,php,mysql,sql,inner-join,Php,Mysql,Sql,Inner Join,我的firma表和这份声明有近100万条记录 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=sek
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的行。另外两个是一个轻微的效率,所以在哪里有值
顺便说一句,如果这些实际上是标志,那么最好说zoom=1而不是zoom>0。谢谢,索引后我如何在sql语句中使用它。@Bagova。SQL引擎会自动选择适当的索引。你可以给它一个提示,如果你想,但这不应该是必要的。