Actions
Patch #24587
closedImprove custom fields list performance
Start date:
Due date:
% Done:
0%
Estimated time:
Description
The custom fields list displays the number of projects the issue custom field is used in by doing a database query for each custom field:
custom_field.projects.count
To improve the performance dramatically when there are really lots of issue custom fields the counts should be pre-loaded with a single database query:
@custom_fields_projects_count = IssueCustomField.where(is_for_all: false).joins(:projects).group(:custom_field_id).count
In the view the counts can then be accessed by:
@custom_fields_projects_count[custom_field.id]
A patch file is attached.
Regards,
Thomas
Files
Updated by Pavel Rosický about 8 years ago
what about a counter cache? custom_field.projects_count?
Updated by Jean-Philippe Lang about 8 years ago
- Status changed from New to Closed
- Assignee set to Jean-Philippe Lang
- Target version set to 3.4.0
Patch committed with a slight change to handle the case where there are 0 projects that use the field.
what about a counter cache? custom_field.projects_count?
Adding a cache counter for that seems a bit overkill to me.
Actions