Project

General

Profile

Actions

Bug #17254

closed

Multiple retrieval of all table rows

Added by Miroslav Monkevic about 17 years ago. Updated over 10 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
-
Target version:
-
Start date:
2007-04-27
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
4.1
PHP Version:
4.3
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Here is my situation:

I have records containing "inline" field (A) which displays children containing inline element (B). Typical record contains A field with 10 children each of them having B element with 10 children displayed. It is only 100 simple records but rendering process takes up to 20 sec. Plus I had to uprise memory_limit up to 128Mb!

Looking onto the sources I noticed that when inline fields children are rendered, ALL of table's records are retrieved into memory and records titles are processed. This happens even if there no children to render.

So in my case, table A contains 68 rows, table B - 892.
If field B is empty - 68 records are retrieved and processed.
If field B has 10 children then 68 A records + 10 * 892 B records are retrieved and processed. If children's titles are rendered by user function then this function is called 9000 times. If it resides in non persistent user object then object is created 9000 times and so on...

Would it be possible to retrieve only records that are actually needed. I had no time to dig deeper into core on this matter. If there is greater reason for retrieving all record, maybe they could be at least cached to prevent multiple retrieval during one form rendering?

Thank you!

(issue imported from #M5511)


Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Feature #17247: Load Inline Elements On DemandClosedSusanne Moog2007-04-26

Actions
Related to TYPO3 Core - Bug #18368: Many Relations will cause performance problemsClosed2008-03-04

Actions
Actions

Also available in: Atom PDF