2012-03-21 18 views
0

I次のmysqlのクエリを持っている:mysqlの多数の照会

EXPLAIN 
    SELECT 
    id, 
    name, 
    title, 
    description, 
    time 
    FROM entity 
    WHERE 
    (date_end > CURRENT_DATE 
     OR (date_end = CURRENT_DATE AND time_end >= CURRENT_TIME) 
    ) 
    AND (next_date < CURRENT_DATE 
     OR (next_date = CURRENT_DATE AND next_time <= CURRENT_TIME) 
    ) 

テーブルに10000の+行を処理するとき、私はこのクエリは時間がかから作るために何ができるのはいつですか?

答えて

0

説明プランの表示/分析は、より多くの回答に役立ちます。

私は[date_end, time_end][next_date,next_time]に複合インデックスを追加することが可能な場合は、

0

を助ける同様next_datetimeとしてNEXT_DATEとNEXT_TIME列に対して、単一datetime_end列にDATE_ENDとTIME_END列を組み合わせて、インデックスを設定する可能性があると思いますが、 on datetime_end、next_datetime。 、彼のテーブルにはTIME_ENDのための1つのフィールドに日付、別の時間、そうでない場合、真の日付/時刻フィールドを持って表示されます..私はそれがうまくいくとは思わない

SELECT id, name, title, description, time 
    FROM entity 
    WHERE datetime_end >= now() and next_datetime <= now() 
+0

:あなたはその後、としてクエリを書き直すことができます彼はすでに彼が持っているものにちょっと立ち往生している。 – DRapp

+0

私は可能ならば、彼のデータベース設計を変更するようアドバイスしていました。 –

+0

DOOhhhh ...今朝の脳の痙攣...それについてのあなたのコメントを読んでいない...誰かがカフェインを言うことができる – DRapp

関連する問題