Помогите оптимизировать медленный WP_Query с помощью meta_query

Я пытаюсь создать собственный WP_Query . Прямо сейчас у меня есть два мета поля, roi_min и roi_max . Идея состоит в том, чтобы получить сообщения, у которых на roi_min больше выбранного значения, а roi_max меньше выбранного значения. Все идет нормально. Проблема возникает, когда вы добавляете разные случаи.

В запросе должны быть учтены все сообщения, у которых нет roi_min , OR roi_max set, или оба установлены как пустая строка ( '' ), OR имеют только roi_min set и roi_max как пустую строку. Там много случаев ИЛИ.

Прямо сейчас, мой запрос выглядит так:

 $args = array( 'post_type' => 'post', 'tax_query' => Custom_Class::build_tax_query(), 'posts_per_page' => 10, 'paged' => $paged, 'meta_query' => array( 'relation' => 'OR', array( 'relation' => 'AND', array( 'key' => 'roi_min', 'value' => $roi_min, 'compare' => '>=', 'type' => 'NUMERIC' ), array( 'key' => 'roi_max', 'value' => $roi_max, 'compare' => '<=', 'type' => 'NUMERIC' ) ), array( 'relation' => 'AND', array( 'key' => 'roi_min', 'value' => $roi_min, 'compare' => '>=', 'type' => 'NUMERIC' ), array( 'key' => 'roi_max', 'value' => '', ) ), array( 'relation' => 'AND', array( 'key' => 'roi_min', 'value' => '', 'compare' => 'NOT EXISTS', ), array( 'key' => 'roi_max', 'value' => '', 'compare' => 'NOT EXISTS', ) ), array( 'relation' => 'AND', array( 'key' => 'roi_min', 'value' => '', ), array( 'key' => 'roi_max', 'value' => '', ) ) ), ); 

Запрос, похоже, работает, но он очень медленный, и иногда он вообще не загружается. Я предполагаю, что это потому, что отношение OR .

Любые советы о том, как оптимизировать это? Чем меньше meta_query мы можем использовать, тем лучше.

Благодаря!

Solutions Collecting From Web of "Помогите оптимизировать медленный WP_Query с помощью meta_query"