2011-10-30 10 views
0

私は配列mysqlクエリを使用すると、それは本当に遅いです。これをより速くするためのトリックはありますか?PHP mysqlクエリの配列

例えば:

SELECT * 
    FROM posts 
    WHERE type IN ('1','2','5') 
ORDER BY id ASC 

は、他のクエリ、その後ずっと長い時間がかかります。

+2

インデックス?実際に必要な列のみを返します。すべてではありません。 –

+1

説明をして何が起こっているのを見てください – david

+4

これは配列ではありません – NullUserException

答えて

0

typeintegerタイプの場合は、アポストロフィを削除します。

WHERE type IN (1, 2, 5) 

ない場合 - integer

0

に変更typeタイプが、私は次のことを見上げ検討したいクエリをスピードアップするために多くのことを:

ノーマライズ。おそらくテーブルの構造が最も効率的ではないでしょうか?

インデックス作成。検索したいものが分かっていると、クエリ時間が短縮されます。

0

EXPLAINは、クエリが遅い理由を教えてくれます。それに基づいて、クエリやテーブル構造を調整して問題を解決することができます。この場合、このようにそれを使用します。ここでは

EXPLAIN SELECT * FROM posts WHERE type IN (1,2,5) ORDER BY id ASC

0

ます(「1」「2」、「5」) まず、二つのことを見てする必要がありこれは文字列であることを整数いけません(1,2,5)となります。 第2に、タイプフィールドにインデックスを適用できます。