Improve performance of widgets with large datasets

Provide database index for widgets which is used by widget queries to
fetch data way faster, e.g. 0.1 instead of > 5 seconds in one concrete
project.

Relates: #63
This commit is contained in:
Daniel Siepmann 2021-08-03 10:06:09 +02:00
parent f3b4ae3c3b
commit e2a23c6455
2 changed files with 14 additions and 1 deletions

View file

@ -17,7 +17,18 @@ Nothing
Fixes Fixes
----- -----
Nothing * Improve performance of widgets with large datasets
A new database index is added which is used by widget queries.
This can reduce the calculation time of database based on dataset.
One concrete project reduced from > 5 seconds to below 0.2 seconds.
This mainly improves the PageviewsPerPage widget.
PageviewsPerDay is still way to slow, but I couldn't find a working approach to
improve performance.
Relates: :issue:`63`.
Tasks Tasks
----- -----

View file

@ -3,6 +3,8 @@ CREATE TABLE tx_tracking_pageview (
user_agent text, user_agent text,
operating_system varchar(255) DEFAULT '' NOT NULL, operating_system varchar(255) DEFAULT '' NOT NULL,
type int(11) unsigned DEFAULT '0' NOT NULL, type int(11) unsigned DEFAULT '0' NOT NULL,
KEY page_views_per_page (pid,uid,crdate),
); );
CREATE TABLE tx_tracking_recordview ( CREATE TABLE tx_tracking_recordview (