[wp-trac] [WordPress Trac] #24837: querying optimization for category AND searching
WordPress Trac
noreply at wordpress.org
Thu Jul 25 20:16:12 UTC 2013
#24837: querying optimization for category AND searching
-------------------------------------+------------------------------
Reporter: robertv123 | Owner:
Type: enhancement | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Taxonomy | Version: trunk
Severity: normal | Resolution:
Keywords: has-patch needs-testing |
-------------------------------------+------------------------------
Description changed by johnbillion:
Old description:
> querying category with an AND for two term_id's plus having a 50,000 +
> posts site causes the query produced by get_sql in wp-
> includes/taxonomy.php to take excessive amount of time.
>
> On my site the current query in trunk takes 200 + seconds and the
> optimizes query takes 100 to 200 milliseconds.
>
> Sub selects in mysql are not optimized on the server very well.
>
> Example code to utilize query
> query_posts(array('category__and' => array($term0_id,$term1_id)));
>
> affected code starts on line 724 of wp-includes/taxonomy.php
>
> Potential problems.
>
> 1. I simply added the temp table to the $join variable not knowing if
> this will cause problems on other queries
> 2. Clean up of the temporary tables may be needed after query is executed
> with a persistent connection but in my case they can be left there as
> mysql will garbage clean them after script disconnects.
>
> Attached is a patch to wp-includes/taxonomy.php
New description:
querying category with an AND for two term_id's plus having a 50,000 +
posts site causes the query produced by get_sql in wp-
includes/taxonomy.php to take excessive amount of time.
On my site the current query in trunk takes 200 + seconds and the
optimizes query takes 100 to 200 milliseconds.
Sub selects in mysql are not optimized on the server very well.
Example code to utilize query
{{{
query_posts(array('category__and' => array($term0_id,$term1_id)));
}}}
affected code starts on line 724 of wp-includes/taxonomy.php
Potential problems.
1. I simply added the temp table to the $join variable not knowing if this
will cause problems on other queries
2. Clean up of the temporary tables may be needed after query is executed
with a persistent connection but in my case they can be left there as
mysql will garbage clean them after script disconnects.
Attached is a patch to wp-includes/taxonomy.php
--
--
Ticket URL: <http://core.trac.wordpress.org/ticket/24837#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software
More information about the wp-trac
mailing list