várias meta-chave, mas a carga do servidor é muito alta

4

quando temos mais 10 meta chave eu recebo 100% de uso do servidor. existe alguma opção para otimizar a consulta.

 $meta_query = array('relation' => 'AND');
    foreach ($requestData as  $key => $value) {
        $meta_query[] = array(
            'key' => $value,
            'value' => '1',
            'compare' => '='
        );
    }

    $args = array( 'post_type' => 'healthcare', 'post_status' => 'publish', 'posts_per_page' => -1, 'meta_query' => $meta_query);

    $loop = new WP_Query( $args );
    $total = $loop->found_posts;
    
por Abhay Yadav 09.02.2018 / 17:26

1 resposta

3

Metas complexas com um grande número de meta-valores para localizar podem ser lentas. Cada meta-chave que você consulta gera mais um JOIN na consulta, e se você tiver um banco de dados grande, pode ser lento. Você pode tentar algumas coisas:

  • Otimize suas tabelas de banco de dados, é possível que você tenha muitos dados órfãos que podem contribuir para a velocidade de consulta do banco de dados.
  • Tente limitar o número de retornos de consulta de postagens, se você tiver muitos registros no conjunto de resultados que podem causar problemas de velocidade também.
  • Entre em contato com sua hospedagem (ou faça você mesmo se tiver acesso) para verificar o log de consultas lentas do MySQL para ver por que a consulta é lenta e talvez faça alguma otimização nas configurações do servidor MySQL para melhorar o armazenamento em cache.
por Milan Petrovic 09.02.2018 / 17:54