Don't suspend cache invalidation when running term splitting batch routine.

`wp_suspend_cache_invalidation()` was originally added to increase performance,
but the switch to batch processing in [33615] mitigates serious performance
concerns.

As a precaution against timeouts, the batch size has been reduced from 20 to 10.

Props Chouby.
See #30261.

git-svn-id: https://develop.svn.wordpress.org/trunk@33619 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Boone Gorges 2015-08-15 19:24:42 +00:00
parent 7abf08a52c
commit 9c70cea98f

View File

@ -4375,7 +4375,7 @@ function _wp_batch_split_terms() {
LEFT JOIN {$wpdb->terms} t ON t.term_id = tt.term_id
GROUP BY t.term_id
HAVING term_tt_count > 1
LIMIT 20"
LIMIT 10"
);
// No more terms, we're done here.
@ -4401,7 +4401,6 @@ function _wp_batch_split_terms() {
$shared_tts = $wpdb->get_results( "SELECT * FROM {$wpdb->term_taxonomy} WHERE `term_id` IN ({$shared_term_ids})" );
// Split term data recording is slow, so we do it just once, outside the loop.
$suspend = wp_suspend_cache_invalidation( true );
$split_term_data = get_option( '_split_terms', array() );
$skipped_first_term = $taxonomies = array();
foreach ( $shared_tts as $shared_tt ) {
@ -4432,7 +4431,6 @@ function _wp_batch_split_terms() {
_get_term_hierarchy( $tax );
}
wp_suspend_cache_invalidation( $suspend );
update_option( '_split_terms', $split_term_data );
delete_option( $lock_name );