2017-11-02 8 views
0

私は50,000以上の製品があり、私のホームページのページロードの問題の1つを理解しようとしている店があります。 (フロントエンド)が見つかりましたが、現在はバックエンドをチェックしています。たとえば、私の店の家には8つの製品(各ブロック)のように読み込むだけなので、おそらく私のコードのパフォーマンスを向上させることができるかもしれません。アトリビュートで商品のコレクションを入手する最速の方法

製品を呼び出すために使用する方法イムが紹介されています:

$_products = Mage::getModel('catalog/product')->getCollection(); 
     $_products->addAttributeToSelect("*"); 
     $_products->addFieldToFilter(
      array(
      array('attribute'=>'featured', 'eq'=> 1)  
     ) 
     ); 

より速くそれを作るための方法はありますか?または、問題は最新の製品にも、カテゴリ別にフィルタリングしているのかもしれませんか?

答えて

0

このコードは、すでに最適なクエリを作成しています。 addAttributeToSelectを使用する場合は、選択したフィールドの数を減らしてください。また、パフォーマンスを向上させるためにフラットテーブルの使用を検討してください。 (100万を超えるカタログで動作します)。 newrelicのようなプロファイラツールは、コードの特定のパフォーマンスボトルネックについての詳細情報を提供します。

+0

Oは既に管理者のフラットカタログを有効にしています。ええ、私は何かを変更する必要がありますか? –

+0

製品フラットをアクティブ化したばかりの場合は、製品フラットインデックスを実行してフラットテーブルを作成する必要があります。 –

+0

しかし、私はどのようにフラットテーブルを作成するフラットインデックス製品を実行するのですか? –

関連する問題