You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
…records
We could think of two possible ways to resolve this:
1) Remove the query's LIMIT
2) Fix the code to correctly use the query's LIMIT + OFFSET filters, which is what the code was trying to do before this change.
Both have significant downsides. #1 can drastically increase the memory footprint of the export logic, because now the full results are loaded into memory. #2 can result in exceptionally slow exports, because LIMIT + OFFSET causes a large query to be run multiple times, PLUS the fact that OFFSET can have extremely bad performance with large values.
We went with option #1. We found that the performance impact of the export and the load on the database of #2 can be too significant with large, heavy queries. With #1, a report CSV would have to be in somewhere over 100MB before the risk of hitting the PHP memory limit is significant. We feel this is a much smaller likelihood of happening, and for clients that would need to be exporting that much data would have the technical expertise to implement #2 if necessary, or shrink the query results somehow. #2 affects a greater number of users and causes a frustrating performance hit.
A di.xml should be included for default preferences.
The text was updated successfully, but these errors were encountered: