@tsteur opened this Pull Request on March 13th 2015 Member

Made sort much faster by using builtin php methods. Currently, we sort via usort in PHP. This is quite slow especially when we sort many rows, eg 25k rows or more. The time needed to sort depends a lot on the data, the column to sort, etc. that's why it is hard to say how much performance improvement we will gain. On 25k rows it can drop from eg before about 900ms to 500ms.

As I side effect I fixed many bugs that were in the previous sort filter implementation, the code is much better tested and it does now use a secondary column on nb_visits or label if possible. refs #7401

Some of the fixed bugs include:

  • We would pick wrong sorting algorithm if label is numeric. This is eg often the case when having labels like '2015' etc.
  • We would pick wrong column to sort if first row of the table has a value false for the selected column.
  • ...

We need to wait till we drop support for PHP 5.3 since the sort flags SORT_NATURAL and SORT_FLAG_CASE were added in PHP 5.4 which this pull request requires.

refs #4768

@tsteur commented on March 19th 2015 Member

refs #6759. This will make range dates (#4768), archiving, flattening (#5098) and viewing reports in general faster

@tsteur commented on July 28th 2015 Member

I will issue a new PR as there is now a branch for Piwik 3.0 which supports PHP 5.4+

This Pull Request was closed on July 28th 2015
Powered by GitHub Issue Mirror