WordPress.org

Make WordPress Core

Ticket #24093: 24093.1.patch

File 24093.1.patch, 1.0 KB (added by kevinfodness, 8 years ago)

Patch for meta.php to improve query performance

  • wp-includes/meta.php

     
    807807                                continue;
    808808                        }
    809809
    810                         $join[$i]  = "INNER JOIN $meta_table";
    811                         $join[$i] .= $i ? " AS $alias" : '';
    812                         $join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column)";
    813 
    814810                        $where[$k] = '';
    815811                        if ( !empty( $meta_key ) )
    816812                                $where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key );
     
    848844                        if ( ! empty( $where[$k] ) )
    849845                                $where[$k] .= ' AND ';
    850846
    851                         $where[$k] = ' (' . $where[$k] . $wpdb->prepare( "CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value );
     847                        $where[$k] = ' ' . $primary_table . '.' . $primary_id_column . ' IN (SELECT ' . $meta_id_column . ' FROM ' . $alias . ' WHERE ' . $where[$k] . $wpdb->prepare( "CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value );
    852848                }
    853849
    854850                $where = array_filter( $where );