TCA l18n_parent is processed for sys_language_uid 0
When opening a TCA Form of e.g. a tt_content record of sys_language_id 0 the l18n_parent field is processed, though the field isn't even displayed.
If you v a lot of tt_content records on the same pid this leads to major performance issues.
E.g. if arround 45k tt_content records on the same pid which are used by a container record via IRRE (kind of like the news does).
If there r 10 Records attached to the container records that leads to 10x45k interations in TYPO3\CMS\Backend\Form\FormDataProvider\AbstractItemProvider\addItemsFromForeignTable which takes 40sec. On my maschine :).
The only way to get arround this is to set type=>none to l18n_parent via override.
This behavior did not exist in TYPO3 6.1 (not sure about later versions).
I assume it has been introduced by the rewriting of the whole tce/form stuff.
I think this is more a general issue, imho fields that r not displayed at all by e.g. DisplayCond should be filtered earlier so that dont make their way through the itemProvider.
Note: this issues is not restricted to tt_content. In general: fields are processed by itemProviders/Dataproviders no matter if they r acctually displayed/used or not.
Updated by Markus Klein over 4 years ago
The performance issue is a known issue. Eg. we had to change the TCA of news to change the parent selector to a group field, since we had 25k news records in default language, which is performance hell.
The part about processing fields depending on the display condition is not that easy. There was a lot of thinking already by Christian Kuhn about that.
Maybe get in touch with him on Slack for more internal details on the processing.