2016-05-31 6 views
0
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にインデックスを持っていますが、まだ重要なランタイムがあります。MySQLでどの列をインデックス化するのですか?

私が迷っていること、間違っていることは何ですか?クエリの

+1

サンプルデータと希望の結果で別の質問をしたい場合があります。クエリを書くためのより良い方法があるかもしれません。 –

+0

あなたはすべてを普通の英語で書いていると、より鋭い応答を得るでしょう。つまり、kupon =>クーポンです。理解するのがずっと簡単です。さらに情報を追加して、すべてのフィールドと一意性を持つすべてのインデックス、および各テーブルの行数をリストしたいと思うでしょう。 –

答えて

2

明白な指標は以下のとおりです。

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

しかし、私はこれらのインデックスはトンのための大きな助けになることを確信していません彼のクエリークエリーはかなり複雑で、ロジックを表現する別の方法があるかもしれません。

関連する問題