2012-03-15 7 views
1

現在、質問に「LIKE」を使用すると2秒で結果が得られます。しかし、代わりに '='を使用すると、結果が表示されるまでに約1分かかります。 次は私のクエリです:'='を使用したMysqlクエリは 'LIKE'よりもはるかに遅い

  • QUERY1

は、次のクエリでは、2秒かかります。「などを交換する

​​
  • QUERY2

同じクエリ'='によって1分かかる:

select distinct p.Name from Timeset s 
join table1 f on (f.id = s.id) 
join table2 p on (p.source=f.table_name) 
join table3 d on (d.Name = p.Name) WHERE 
s.Active = 'Y' AND **p.sourcefrom = 'sometable' 

私は「のような」のさまざまな可能性を探すためにmysqlの必要があるので(「=」より)通常遅いことを知っているので、私は本当に困惑しています。しかし、なぜ私の場合、「=」がこのような大きな違いで遅くなっているのだろうと確信しています。あなたはMySQLのは、おそらくあなたがLIKEを使用する場合に比べて異なるインデックスを使用している=を使用する場合

は、事前に助けを親切に

に関して、

+3

両方のクエリが同一です。あなたの質問を編集してください。 – iblue

+0

クエリプランが原因である可能性があります...更新統計に相当するmysqlがありますか? –

+0

'table2.sourcefrom'のインデックス? – cHao

答えて

1

をお願いします。 2つの実行計画からの出力をチェックして、differnceが何であるかを確認してください。それで、あなたはより良い実行指数の使用を強制することができます。関係するテーブルごとにANALYZE TABLEを実行する価値があります。

関連する問題