2017-10-25 16 views
0

다음 쿼리가 어디에서 발생했는지 아이디어가 있습니까? tt_content 레코드를 관련시키기 위해 TCA에서 타입 인라인을 사용할 때 하나의 폴더에 방대한 양의 tt_content 레코드가 있기 때문에이 관계로 인해 막대한 성능 문제가 발생합니다. (ID : 45)TYPO3 TCA 유형 IRRE가 tt_contents와 함께 매우 느림

SELECT tt_content.uid 
    , tt_content.header 
    , tt_content.subheader 
    , tt_content.bodytext 
    , tt_content.t3ver_id 
    , tt_content.t3ver_state 
    , tt_content.t3ver_wsid 
    , tt_content.t3ver_count 
    , tt_content.CType 
    , tt_content.hidden 
    , tt_content.starttime 
    , tt_content.endtime 
    , tt_content.fe_group 
FROM tt_content, pages 
WHERE pages.uid=tt_content.pid 
    AND pages.deleted = 0 
    AND tt_content.deleted = 0 
    AND 1=1 
    AND tt_content.pid = 45 
    AND tt_content.sys_language_uid IN (-1,0) 

가 I이 구성 사용 /sysext/backend/Classes/Form/FormDataProvider/AbstractItemProvider.php

: I 코어 파일 디버깅

'content_elements' => [ 
      'displayCond' => [ 
       'OR' => [ 
        'FIELD:tasktype:=:1', 
        'FIELD:tasktype:=:5' 
       ] 
      ], 
      'exclude' => true, 
      'l10n_mode' => 'mergeIfNotBlank', 
      'label' => 'content', 
      'config' => [ 
       'type' => 'inline', 
       'allowed' => 'tt_content', 
       'foreign_table' => 'tt_content', 
       'foreign_sortby' => 'sorting', 
       'foreign_field' => 'tx_contentmanager_related_content', 
       'minitems' => 0, 
       'maxitems' => 99, 
       'appearance' => [ 
        'collapseAll' => true, 
        'expandSingle' => true, 
        'levelLinksPosition' => 'bottom', 
        'useSortable' => true, 
        'showPossibleLocalizationRecords' => true, 
        'showRemovedLocalizationRecords' => true, 
        'showAllLocalizationLink' => true, 
        'showSynchronizationLink' => true, 
        'enabledControls' => [ 
         'info' => false, 
        ] 
       ] 
      ] 
     ], 
+0

이것은 핵심적인 문제입니다. 주말에 디버깅하려고합니다. –

+0

빠른 답장을 보내 주셔서 감사합니다. 나는 문제를 국한화하려고 노력한다. 그런 숙련 된 개발자의 지원에 대해 기쁘게 생각합니다. – N1ck

답변

1

을 문제는 tt_content 레코드의 번역 처리에있는 것 같습니다.

$GLOBALS['TCA']['tt_content']['columns']['l18n_parent']['config']['foreign_table_where'] = AND tt_content.pid=###CURRENT_PID### AND tt_content.sys_language_uid IN (-1,0) 

그러나 현재 pid의 모든 콘텐츠를 가져와야하는 이유는 모르겠습니다. 임시 솔루션으로 TCA 항목을 변경했습니다. 우리는 페이지에 tt_content를 사용하지 않았으며 아직 번역이 없었기 때문입니다. 이것이 좋은 생각인지 모르겠지만, 현재로서는 편집자의 성능 문제를 해결합니다.

$GLOBALS['TCA']['tt_content']['columns']['l18n_parent']['config']['foreign_table_where'] = 'AND tt_content.pid = -1 AND tt_content.sys_language_uid IN (-1,0)'; 
+1

https://forge.typo3.org/issues/81036에 대한 문제가 이미 있습니다. 귀하의 솔루션은 절대적으로 IMO입니다 –