Tryton - Issues

 

Message55510

Author pokoli
Recipients ced, reviewbot
Date 2020-02-21.16:36:22
Content
Why not using the solution that uses the Function field? We always try to avoid data syncronization. See some comments about it: 

https://discuss.tryton.org/t/merge-products-variants-into-one-database-table-one-view-one-list/2241/10

I've done some tests with on my laptop. Generate products and 5 variants for each:

insert into product_template (active, code, name, type, default_uom) select true, code::varchar, Concat('Product', code), 'goods', 1 from generate_series(1, 100000) as code;
insert into product_product (template, active, suffix_code, code) select id, true, num, CONCAT(code, num) from product_template inner join generate_series(1,5) as num on true;

Select a random product with join and without it:

select p.id from product_template t inner join product_product p on p.template = t.id where concat(coalesce(t.code, ''), coalesce(p.suffix_code)) like '55534%'
select id from product_product where code like '55534%';

with 10.000 products and 50.000 variants:

SELECT WITH JOIN Execution Time: 50.102 ms
SELECT WITH CODE Execution Time: 18.457 ms

with 100.000 products, 500.000 variants:

SELECT WITH JOIN Execution Time: 260.993 ms
SELECT WITH CODE Execution Time: 81.735 ms

With 1M products and 5M variants:

SELECT WITH JOIN Execution Time: 1861.759 ms
SELECT WITH CODE Execution Time: 246.477 ms


The searcher starts to become slower when the number of products is bigger. I do not see a big deal for setups managing 5M of variants to materialize the colum and override the function searcher to use the materialized column.
History
Date User Action Args
2020-02-21 16:36:23pokolisetmessageid: <1582299383.22.0.809382926898.issue9080@tryton.org>
2020-02-21 16:36:23pokolisetrecipients: + ced, reviewbot
2020-02-21 16:36:23pokolilinkissue9080 messages
2020-02-21 16:36:22pokolicreate

Showing 10 items. Show all history (warning: this could be VERY long)