[Erp5-dev] some missing methods

Yoshinori Okuji yo at nexedi.com
Wed Apr 20 00:14:45 CEST 2005


On Tuesday 19 April 2005 11:16 pm, Sebastien Robin wrote:
> I have a question, may be it is a bit stupid, but I would like to
> (without list), take the output of the method on each object without
> calling mysql, then join the output and then call mysql ? we should have
> something like this (case 2):
> insert into catalog values (a,b,c);
> insert into catalog values (d,e,f);
> insert into catalog values (g,h,i);
>
> In both cases, we call mysql only one time, and in the second case we
> don't have to write a z_xxx_list zsql method.
>
> Isn't it possible to do the second case ? Is there an import perfomance
> difference ?

As you guess, the performance changes a lot.

This is an example. First, I make a dump of Nexedi ERP5 without extended 
inserts:

[yo at localhost test]$ mysqldump -u root nexedi_erp5 > standard.sql

Then, insert it into another database:

[yo at localhost test]$ time mysql test < standard.sql
0.79user 0.44system 3:12.21elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+373minor)pagefaults 0swaps

With extended inserts:

[yo at localhost test]$ mysqldump -u root -e nexedi_erp5 > extended.sql

Insert it into a database:

[yo at localhost test]$ time mysql test < extended.sql
0.20user 0.01system 0:07.77elapsed 2%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (0major+901minor)pagefaults 0swaps

So using extended inserts is 25 times faster in this test. I heard that Coramy 
ERP5 was indexed only for 7 minutes with extended inserts, while reindexing 
it without extended inserts took several hours, according to Jean-Paul.

I think this difference is mainly because of rebuilding of indexes. If each 
row is inserted one by one, MySQL must reindex the rows every time. If a 
number of rows are inserted at one shot, MySQL does reindex much fewer times.

That's why we are interested in reindexing a document with all sub-objects, 
even when only one sub-object is modified. There is a possibility that this 
can be faster than reindexing some objects, although I suspect that this does 
not perform well, due to the overhead of the evaluation of DTMLs.

YO
-- 
Yoshinori Okuji, Nexedi Research Director
Nexedi: Consulting and Development of Free / Open Source Software
http://www.nexedi.com
ERP5: Free / Open Source ERP Software for small and medium companies
http://www.erp5.org
Storever: OpenBrick, WiFi infrastructure, notebooks and servers
http://www.storever.com



More information about the Erp5-dev mailing list