要在MySQL中索引哪些列?

时间:2016-05-31 00:14:41

标签: php mysql sql

SELECT ID,uye,kazanilacakmiktar FROM kupon WHERE durum=0 AND ID IN (
select c.kupon
from kuponbahis c join
     bahis b 
     on ((b.sonuc = c.secim) OR (b.sonuc=5)) and b.ID = c.bahis 
group by c.kupon
having sum(c.bahis = '999') > 0 and
       count(*) = (SELECT COUNT(*) FROM kuponbahis WHERE kupon = c.kupon));

我有这样的查询。我的索引位于kupon.ID, kupon.uye, kupon.kazanilacakmiktar, kuponbahis.bahis, kuponbahis.secim,但它仍然具有重要的运行时间。

我错过了什么,我做错了什么?

1 个答案:

答案 0 :(得分:2)

查询的明显索引是:

  • kupon(durum, id)
  • kuponbahis(kupon)
  • bahis(id, sonuc)

但是,我并不相信这些索引会对他的查询有很大帮助。查询相当复杂,可能有其他方式表达逻辑。