[Tickets #14368] Re: Improve EAS performance with large History tables
noreply at bugs.horde.org
noreply at bugs.horde.org
Wed May 25 16:04:32 UTC 2016
DO NOT REPLY TO THIS MESSAGE. THIS EMAIL ADDRESS IS NOT MONITORED.
Ticket URL: https://bugs.horde.org/ticket/14368
------------------------------------------------------------------------------
Ticket | 14368
Updated By | hannes.brunssen at ewetel.de
Summary | Improve EAS performance with large History tables
Queue | Synchronization
Version | FRAMEWORK_5_2
Type | Enhancement
State | Feedback
Priority | 1. Low
Milestone |
Patch |
Owners |
------------------------------------------------------------------------------
hannes.brunssen at ewetel.de (2016-05-25 16:04) wrote:
> What about adding a composite index on history_action, object_uid?
> Since mysql uses the index that returns the least number of rows,
> this should improve performance when the modseq range is extremely
> high.
I tried a few different indexes with different modseq ranges for this
query on an idle mysql server:
700k 120k 30k
1 history_modseq 1.61 0.34 0.08
2 history_action 2.25 2.16 2.13
3 object_uid 0.62 0.65 0.64
4 history_action, object_uid 0.60 0.43 0.42
5 history_action, history_modseq, object_uid 0.50 0.13 0.02
6 history_modseq, object_uid 0.39 0.13 0.02
This was order of the preferred indexes on a mysql 5.6 server:
700k: 4, 2
120k: 5, 4, 2
30k: 5, 1
The history_action index seems to cause more problems than it helps,
but it might be useful for other queries. The fasted index was never
selected, so we will probably patch our local Horde installation to
force the last index for these queries.
It would still be nice to prevent these long modseq ranges. Would it
be possible to use a specific UPDATE query that only changes the
modseq if every other field is unchanged and the sync_timestamp is a
week in the past or could that still lead to data loss?
More information about the bugs
mailing list