0

カテゴリ内の商品を人気度 (人気度とはページビューを意味します) で並べ替えたいと考えています。これを実現するために、製品の詳細ページでインクリメントする属性 (page_view) を作成し、この属性を使用して製品をカテゴリ別に並べ替えました。機能面ではすべて問題なく動作しますが、パフォーマンスの観点からは、製品コストの増加と節約が大きすぎるため、解決策ではありません。商品詳細ページの読み込みに約 5 秒かかりましたが、それがない場合は約 0.9 秒です。このインクリメント属性コードを非常に深いシステムに配置しようとしましたが、とにかくパフォーマンスが低下します。誰もそのような問題を抱えていますか?そして、そのようなことを実現する方法をいくつか提案してください。前もって感謝します。それがどのように/なぜ起こるかについての技術的な詳細な説明は大歓迎です。私はそれが属性であり、 $product->save(); であることを知っています。多くの製品に影響を与えますが、とにかくできません」

4

2 に答える 2

0

属性がcatalog_productフラットテーブルの一部であることを確認してください。そのため、そのソート操作を行うためにEAVテーブルに参加する必要はありません。

于 2013-09-10T12:35:26.900 に答える
0

残念ながら、自分で答えを見つけた後、自分の質問にもう一度答えるつもりです。これがいつか誰かの助けになることを願っています。問題は $product->save() が悪だということです。大量のテーブルを更新するため、操作が非常に遅く、これが数秒かかった理由です。これの代わりに、バックグラウンドでの作業が少ないため、高速に見える saveAttribure() 関数を使用しました。したがって、製品の「保存」機能が悪であることを忘れないでください。

于 2013-09-11T11:45:28.073 に答える