[buddypress-trac] [BuddyPress Trac] #5629: Slow queries with BP_Activity_Activity::get()
buddypress-trac
noreply at wordpress.org
Sun May 11 18:28:15 UTC 2014
#5629: Slow queries with BP_Activity_Activity::get()
-------------------------+------------------
Reporter: Clean-Cole | Owner:
Type: enhancement | Status: new
Priority: lowest | Milestone: 2.1
Component: Activity | Version: 2.0
Severity: normal | Resolution:
Keywords: has-patch |
-------------------------+------------------
Comment (by Clean-Cole):
Hey Boone, I'm with you on that. I think the biggest issue for me trying
to come up with a solution is trying to determine the more common use
cases of the BP_Activity_Activity::get(). I've started creating a
function that will determine if the activity query being run is something
that should be cached.
Currently I'm playing around with a foreach statement that checks the
following array against the {{{$filter}}} query parameter. This is less
of an actual code solution but more of me thinking out loud. Integer keys
in the array are only checked by an {{{isset()}}} call. String key =>
value pairs are checked for a matched value. The positive and negative
keys are hopefully self explanatory.
{{{
$checks = array(
'positive' => array( 0 => 'user_id', 'object' => 'activity' ),
'negative' => array( 'since', 'action', 'primary_id',
'secondary_id' ),
);
}}}
So I figured any queries using {{{since}}}, {{{action}}}, or
{{{primary}}}/{{{secondary}}} id should be excluded from a transient. So
basically an all activity count for a user is the only thing we can really
cache reliably? Another issue I considered was that if we save a user's
total activity in a transient, the options table could easily get too
bloated. Do you think storing a user's total activity count inside
BuddyPress user meta is a viable alternative?
I must admit I'm not familiar enough with this query to truly know what
should be included or excluded, so any input or thoughts you have would
obviously be appreciated.
--
Ticket URL: <https://buddypress.trac.wordpress.org/ticket/5629#comment:4>
BuddyPress Trac <http://buddypress.org/>
BuddyPress Trac
More information about the buddypress-trac
mailing list