504의 CPT 결과를 보는 WordPress 대시 보드


10

맞춤 분류 체계를 사용하여 맞춤 게시물 유형을 만들었습니다. 나는 약 1500 개의 게시물을 가지고 있으며 모든 게시물은 일종의 분류 용어에 할당됩니다 ... 일부는 200 + 용어에 할당됩니다.

대시 보드에서 사용자 지정 게시물 유형을 보는 데 시간이 오래 걸리며 대부분 504 게이트웨이 시간 초과가 발생했습니다.

프론트 엔드에서 이러한 게시물을 쿼리하는 것은 괜찮으며 문제가 없습니다.

대시 보드가 이러한 사용자 정의 게시물 유형을 보려고 할 때 모든 게시물을 표시하기 전에 각 게시물에 할당 된 모든 정보를 가져 오려고한다는 것을 이해합니다.

나는이 WP 설치가 필요한만큼 많은 메모리를 사용할 수 있도록 메모리 세트 (memory_limit = -1)를 가지고 있는데, 일부는 메모리와 관련이 있다고 말했다.

이 쿼리의 성능을 높이기 위해 할 수있는 일이 있습니까? 게시물을 편집 할 때까지 게시물의 모든 분류 용어 관계를로드하지 못할 수 있습니까?

WP_MEMORY_LIMIT1Gb에서 2Gb로 증가한 오류 :

WordPress database error: [MySQL client ran out of memory]
SELECT t.*, tt.*, tr.object_id FROM wp_terms AS t INNER JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id INNER JOIN wp_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id WHERE tt.taxonomy IN ('locations') AND tr.object_id IN

WordPress database error: [Lost connection to MySQL server during query]
SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN

WordPress database error: [MySQL server has gone away]
SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month FROM wp_posts WHERE post_type = 'services' ORDER BY post_date DESC

FWIW, WordPress 사이트의 메모리를 2Gb로 늘리고 게시물을 볼 수 있었지만 많은 오류가 발생했습니다 (원래 질문에 추가됨). 백엔드에서 쿼리를 그렇게 무겁게 만들 수있는 방법이 있습니까?
NW Tech

대시 보드에서 사용자 정의 게시물 유형보기를 언급 할 때 wp-admin/edit.php?post_type=services?에 위치한 게시물 목록을 참조하는 것 입니까?
bosco

@bosco 맞습니다.
NW Tech

그것은 Wordpress에 할당 할 끔찍한 메모리입니다. 공유 호스팅, VPS 또는 전용 서버에 있습니까? 여기에는 더 깊은 근본적인 문제가있을 수 있습니다. Apache 또는 Nginx와 같은 다른 웹 서버를 사용하고 있습니까?
Dwayne Charrington

MediaTemple이 포함 된 새로운 서버 (dv)입니다. 제어판은 Plesk이고 서버는 Apache 및 Nginx와 함께 CentOS를 실행합니다. 이 많은 메모리를 할당하고 싶지 않지만 결과를 얻는 유일한 방법 인 것 같습니다.
NW Tech

답변:


4

CPT 및 분류 용어는 플러그인을 통해 생성됩니다. 플러그인에 다음을 추가하여 쿼리를 줄일 수있었습니다.

add_action( 'pre_get_posts', 'nwtd_lpfs_custom_admin_query' );
function nwtd_lpfs_custom_admin_query( $query ) {
    if( !is_admin() && !$query->is_main_query() ) {
         return;
     }
     if( is_post_type_archive( 'services' ) ) {
          $query->set('no_found_rows', 1 );
          $query->set('update_post_meta_cache', 0 );
          $query->set('update_post_term_cache', 0 );
     }
}

현재 현재 1500 개 이상의 분류 용어와 관련된 700 개 이상의 게시물이 있으며 모든 것이 잘 작동합니다. 게시물이 거의 즉시 표시됩니다.

** 나는이 코드를 작성하지 않았다. 코드를 제공 한 WordPress Answers 커뮤니티의 일부가 아닌 직접 작업하는 사람이 다른 사람에게 도움이되거나 다른 사람이 코드를 확장하여 더 효율적으로 만들 수 있습니다. **

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.