2017-12-29 18 views
0

목록 및 세부 정보보기 (목록 및 표시 작업)가있는 extbase 확장을 개발했습니다. 링크를 들어 TYPO3 - 많은 레코드가있는 레코드에 액세스하는 성능 저하 (> 1 백만)

<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/ 

그러나 레코드의 수는 현재 1 백만 기록에 도달와

내가 세부 정보 페이지에 액세스하는 성능 저하의 비트가 발생하고있어 ... 내가 realurl를 사용하고 좋은 볼 수 있습니다. 나도 2 개의 언어를 가지고있다.

성능 저하를 방지하거나 성능을 향상 시키려면 어떻게해야합니까? 나는 기록에 접근하는 것은 다음과 같이 구현되는 것을 볼 몇 가지 설정에서

:

domain/category/?record_id=DE00ABC03709 

이이 같은 JSON보기/(편안하고) API에 의해 수행되어 있습니까? https://usetypo3.com/json-view.html

+1

''TYPO3 \ CMS \ Extbase \ Persistence \ ObjectStorage'를 가지고있는 모델 레코드의 속성을 확인할 수있는 요소는 여러 가지가있을 수 있습니다. 또한 세부 사항 페이지 및 서버 구성의 캐싱을 점검하십시오. – ravisachaniya

+0

도메인 저장소의'findAll()'메소드를 사용하여리스트 뷰의 * 모든 엔티티를 렌더링하고 있습니까? 이 경우 데이터베이스에서 검색된 데이터의 양을 줄이기 위해 페이지 매김을 사용하여 HTML로 렌더링하는 것이 좋습니다. 더 나은 대안은 실제로 각 엔티티를 감싸는 데 사용되는 HTML 오버 헤드를 줄이고 JSON처럼 AJAX를 통해 데이터를 검색하는 것입니다. 렌더링은 예를 들어 데이터 바인딩과 같이 수행 할 수 있습니다. 각도 또는 RivetJS는 그 목적을 위해 경량으로 구현되었습니다. –

답변

0

성능 저하가 항상 발생합니까? 캐시 종속성입니까? 모든 세부 정보 페이지를 캐시하기에 충분히 큰 캐시입니까?

것은 캐시 테스트 수행

  1. 캐시 삭제,
  2. 요청 증가 ID를 가진 모든 세부 정보 페이지를 (이러한 요청은 모든 페이지가 같은 속도로해야 캐시되지 않은 한, 캐시를 충전 전체 렌더링) ,
  3. 그런 다음 ID가 감소한 세부 정보 페이지를 요청하십시오 (이제 모든 페이지는 캐시 된 페이지 만 반환되어야하므로 더 빠른 응답을 표시해야합니다). 이 분야 당신에 인덱스 키를 가지고 (더) 중요 빅 데이터에 대한
    : 캐시가 신분증에 작은에있는 경우 다음의 모든 요청은 일반적으로 2

에서 느린 응답을 표시해야합니다 레코드를 선택하십시오.
TYPO3은 대개 십진 정수 (필드 uid, 즉 인덱스 키 normaly) 만 사용하므로 예제에서 16 진수 ID에 대해 궁금합니다.

어쨌든 다른 필드를 선택 항목, 특히 URL의 일부로 사용할 수 있습니다 (예 : 뉴스의 제목 필드). 그런 다음 추가 색인 키가 큰 데이터에 도움이 될 수 있습니다.