[TYPO3-dev] Typo3 Performance

Martin Kutschker martin.t.kutschker at n0spam.blackbox.net
Sun Mar 4 16:48:41 CET 2007


Dmitry Dulepov schrieb:
> Martin Kutschker wrote:
>> Dmitry Dulepov schrieb:
>>> Hi!
>>>
>>> Martin Kutschker wrote:
>>>> Can you explain this model in short or give me a pointer to an 
>>>> online resource?
>>>
>>> This model was proposed by Oracle DB expert Joe Celko. Generally it 
>>> marks branches of the tree with consecutive numbers so that when you 
>>> want to fetch root path or get the whole branch, you just need to 
>>> issue query with two numbers. Example:
>>>
>>>                     |- C (3,4)
>>>         |- B (2, 7)-|
>>> A(1,14)-|           |- D (5,6)
>>>         |           |
>>>         |- E (8,13)-|- F (9,10)
>>>                     |
>>>                     |- G (11,12)
>>
>> Quite interesting.
>>
>> I notice that several articles on this topic suggest to use table 
>> locks (for Myisam) or transactions when updating the table. This makes 
>> sense but forces us to deal with a Myisam vs Innodb issue plus a DBAL 
>> issue.
> 
> No need. Updates can be also done with one or two queries.

One: fine. Two: not so good. TYPO3 is currently sloppy with capsulating 
changes in the data structure, but a complete update of a the page tree 
structure must be protected.

 > I see the issue with hidden/deleted pages only...

Why? Hidden pages must be updated instantly. Deleted pages might be 
updated. But if we choose not to, we should add a recover tool for pages 
that updates the nested set.

>> Still it's interesting to see which features of TYPO3 can be sped up 
>> with queries on the nested sets.
> 
> Realurl, for example :) It takes rootline. And any other function that 
> requires to traverse tree (templavoila too).

I found a page with some tests. Interstingly a root line serach isn't 
sped up by a nested set. But all operations that work on branches (like 
clear real url cache or clear search index) might benefit.

Masi




More information about the TYPO3-dev mailing list