Sackgesicht VIP
Total posts: 1,636
15 Авг 2013 01:02

PHP is configured with 256MB. A section with 2000 records will work, a section with 30.000+ records will crash in DEBUG MODE

Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 32 bytes) in plugins/system/debug/debug.php on line 1206

I am just wondering, why it is working with cobalt "system fields" (with index) but not with TYPE fields.

Последние изменения: 02 Март 2014


Sergey
Total posts: 13,748
15 Авг 2013 07:43

Unfortunately yes. Because table ordering is performed before limit. It means that is you have 50 000 articles, it first order all of them and then apply limit to 20 records. And if 50 000 articles in DB taks 150 Mb of space here is the result.

I am not sure about if this can be optimized.


Sackgesicht VIP
Total posts: 1,636
15 Авг 2013 07:56

"I am just wondering, why it is working with cobalt "system fields" (with index) but not with TYPE fields."

It only happens with TYPE fields, not with Cobalt System fields like (ctime, mtime, TITLE) ...

Conclusion is that Cobalt "sort by" with a TYPE FIELD will consume much more memory and might have a limit ..


Sergey
Total posts: 13,748
15 Авг 2013 10:24

It needs to be tested with bigger databases ...

Bigger??!! :O I do not know any bigger than yours :)


Sackgesicht VIP
Total posts: 1,636
15 Авг 2013 21:30

but we expect something 20 times bigger, thats the reason to find out the existing limitations ...


Sergey
Total posts: 13,748
16 Авг 2013 02:14

I already have an idea. To change field ordering to left join. Subquery may be overwhelming on lot of records.

Работает на Cobalt