2017-12-29 9 views
0

リストビューと詳細ビュー(リストとショーアクション)を持つextbase拡張を開発しました。リンクは私がRealURLは...TYPO3 - 多数のレコードを持つレコードにアクセスするパフォーマンス低下(100万以上)

<f:link.action action="show" pageUid="43" arguments="{record:record.uid}">{record.name}</f:link.action> 

domain/?tx_abc_abc[record]=1&tx_abc_abc[action]=show&tx_abc_abc[controller]=Abc&cHash=10c78febea3ae5dsdf535fb36ca6d08 

domain/category/record_id/ 

しかし、今、私は詳細ページにアクセスし、パフォーマンス低下のビットを経験しています100万人以上の記録に到達したレコードの数とを使用してい見栄えするため。私も2つの言語を持っています。

パフォーマンスの低下を防止したり、パフォーマンスを向上させるにはどうすればよいですか?私はレコードにアクセスすると、このように実装されていることが分かり、いくつかのセットアップで

domain/category/?record_id=DE00ABC03709 

は、これは、このようなJSONビュー/(RESTfulな)APIによって行われていますか? https://usetypo3.com/json-view.html

+1

モデルの 'record'プロパティー、' \ TYPO3 \ CMS \ Extbase \ Persistence \ ObjectStorage'を持つものがいくつありますか?また、詳細ページのキャッシュとサーバー構成を確認してください。 – ravisachaniya

+0

あなたのドメインリポジトリの 'findAll()'メソッドを使ってリストビューの*すべてのエンティティをレンダリングしていますか?その場合、データベースから取得してHTMLとしてレンダリングされるデータの量を減らすためにページネーションを使用することを検討することができます。より良い選択肢は、実際には各エンティティをラップするために使用されるHTMLオーバーヘッドを減らし、JSONとしてAJAX経由でデータを取得することだけです。レンダリングは、例えばデータバインディングなどで行うことができます。角または例えばRivetJSは、その目的のためだけに軽量な実装です。 –

答えて

0

パフォーマンス低下は常に発生しますか?それともキャッシュ依存ですか?すべての詳細ページをキャッシュするのに十分な大きさのキャッシュですか?

キャッシュテスト実行します(これらの要求がキャッシュされないされているように、すべてのページが同じ速度、キャッシュを埋めると完全なレンダリングにする必要があります)要求の増加IDを持つすべての詳細ページを、

  1. 明確なキャッシュを
  2. IDが減少した詳細ページを要求します(キャッシュされたページのみが返されるため、すべてのページの応答が速くなります)。フィールドあなたにインデックス・キーを持っている(詳細は)重要であるビッグデータのために
    :あなたのキャッシュは、いくつかのIDで小型にある場合は、以下のすべての要求は、一般的には2

から遅く応答を示すべきレコードを選択します。
TYPO3は通常10進整数(フィールドuid、これはインデックスキーの法則です)を使用するため、あなたの例の16進数のIDについては疑問に思っています。

とにかく、特にURLの一部として他のフィールドを選択肢として使用することができます(ニュースのタイトルフィールドなど)。次に、追加の索引キーが大きなデータに役立つ場合があります。

関連する問題