私は3行で、events
、MySQLのInnoDBのテーブルを持っている:MySQLクエリはインデックスに時間がかかりますか?
select a.* from events a, events b
where a.event_id != b.event_id and
a.start < b.end and
b.start < a.end
テーブル:別のイベントと競合することを私はいくつかの範囲内のすべてのイベントを取得するための単純なクエリを書かれている
event_id ---> int
start ---> long
end ---> long
〜10Kの行があり、実行に約2秒かかりました。パフォーマンスを向上させるためにテーブルを微調整しようとしている間に、start
とend
カラムにインデックスを追加しました。なんらかの理由で、これは劇的にのパフォーマンスを低下させたを5xのファクタで減少させました。誰もが知っている、または任意のアイデアを持って、なぜこれらのインデックスを追加するパフォーマンス悪い傷つけるだろうか?
私はインデックスを保持することができます(彼らは他のクエリを助けるが、クロス結合とフィルタを実行するようなクエリを構造化する方法はありますか? – JaredC