4

I am moving over a thread started on P&T's Get Satisfaction.

I am getting a MySQL timeout saving an entry that had a 10-column Matrix field and some 70 rows. Raising the MySQL limits fixes the immediate problem (we can save), but seems to point at a bigger underlying issue -- entries take a surprisingly long time to save and open, while showing relatively normal benchmarks in EE's debugging panel.

To isolate the problem, I set up a separate, fresh EE install with Matrix as my only plugin. I then created a single channel field with a Matrix of 10 text-only columns.

In this environment, an entry with a single Matrix with 100 rows took 47 seconds to save. However, an entry with 8 Matrix of 13 rows each (104 total rows) took 7 seconds to save. More interesting, the benchmarks for Loading Time, Total Execution Time, and Controller Execution Time were all very reasonable (0.2 to 0.4 or so).

I would like to keep these entries in a single Matrix table, if possible. Is this just an effect of saving a table with this many cells (and a natural limit of EE, Matrix, or MySQL). Or is there's something else at play?

Any insights?

  • Can you share the info from EE's debugging panel? E.g. memory usage and number of queries for each respective page load would be helpful. – Adrian Macneil Jan 10 '13 at 19:09
  • 1
    Thanks, Adrian. I took apart the test install debugging this afternoon. I am rebuilding it tonight, but in the meantime can point to stats from the the dev environment. Note, the Matrix is a lot more complex, with a fiesta of P&T's field types, including an Asset field, Wygwam field, and dropdown. These numbers are higher therefore than the test environment. Loading Time: Base Classes -- 0.0181 Total Execution Time -- 0.8831 Controller Execution Time ( Content Publish / Entry Form ) -- 0.8662 Memory usage is all the way up to 24 MB. – Shanan Galligan Jan 11 '13 at 4:19
  • Also note, it is an entry with 79 rows: Script executed in 0.8831 seconds - 219 SQL queries used It takes a solid 25-ish seconds to load and/or save. – Shanan Galligan Jan 11 '13 at 4:26
  • Has there been any other updates to the performance issues? I am running a site which has over 100 matrix rows per entry (with 4 columns per row) and saving times are abysmal (can be over 120 seconds). I understand P&T is working full tilt on Craft, I just wish there was some love shown to EE Matrix :( matrix 2.6.1 ExpressionEngine 2.9.2 Build 20141004 jQuery 1.7.2 MySQL 5.6.21-log Server Microsoft-IIS/8.0 PHP 5.6.3 register_globals off safe_mode off open_basedir max_execution_time 300 upload_max_filesize 50M max_input_time 900 memory_limit 128M session_save_path writable – Joel Kesler Dec 11 '14 at 2:18
  • From the changelog, it looks like 2.6 did not include performance improvements. Can you create a workaround -- duplicate fields for each entry and cycle through the fields in the template, etc.? – Shanan Galligan Dec 11 '14 at 12:53
5

Make sure you’re running the latest version of Matrix. Matrix 2.5 came with a pretty drastic performance boost.

http://pixelandtonic.com/matrix/releasenotes

| improve this answer | |
  • 1
    The test install is v2.5.3 of EE and 2.5.2 of Matrix running on MAMP (MySQL 5.5.9 and PHP 5.3.5). – Shanan Galligan Jan 11 '13 at 4:08
2

Good answer to this issue by Brandon over at the original GetSatisfaction entry: https://getsatisfaction.com/pixelandtonic/topics/error_2006_on_submit

Thanks again, Brandon.

| improve this answer | |
  • Shanan - that getsatisfaction link is dead. Can you share what the fix was? – user1009 Dec 12 '13 at 19:23
  • Unfortunately, there wasn't a solution. Brandon noted that they were making significant edits to the module with a focus on performance. In the meantime, our fix was to create multiple duplicates of our Matrix field and cycle through those. A workaround, but functional. Good luck. – Shanan Galligan Dec 13 '13 at 19:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.