Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Duplicate
-
4.0.7, 4.1.2
-
None
-
MOODLE_400_STABLE, MOODLE_401_STABLE
Description
A Moodle instance has lots of data in the mdl_task_log table. The Task logs admin page with "is equal to" filter set to some value (task name) may take minutes to load.
This seems to be happening because of added LOWER() function to $DB->sql_equal() https://github.com/moodle/moodle/blob/5e1df255667070445122c7822d21e66b2e0435fa/lib/dml/moodle_database.php#L2262 for the IS_EQUAL_TO type of the text filter https://github.com/moodle/moodle/blob/5e1df255667070445122c7822d21e66b2e0435fa/reportbuilder/classes/local/filters/text.php#L140-L143
It's known that LOWER() prevents DBs from hitting indexis so this why a simple query like SELECT * FROM mdl_task_log WHERE LOWER(classname) = LOWER('core\task\task_log_cleanup_task') may take ages to complete.
As a potential solution it would probably work to implement case-insensitive search and resolve MDL-64688.