2013-11-19 3 views
0

Можно ли минимизировать или сократить (если вообще когда-либо) этот запрос? этот запрос слишком долго загружается, как я могу сократить выполнение этого запроса? Благодарю.Выполнение запроса слишком длинное для загрузки

это мой SQL-запрос:

$sql = " 
    SELECT 
    i.ID 
    FROM item_tb i 
    WHERE 
    i.coID = '". $_SESSION['coID'] ."' 
    AND i.isProduct = '1' 
    AND i.isBom = '0' 
    AND NOT EXISTS(
     SELECT 
     s.ID 
     FROM 
     stocks_tb s 
     WHERE 
     i.ID = s.itemID 
     AND s.brID = '". $brID ."' 
    ) 
"; 
+0

запустить 'explain select ...' и посмотреть, где не используются индексы. –

+0

ОК, я сделаю это сейчас, tnx –

+0

Почему вы не пытаетесь использовать 'JOIN', а не' NOT EXISTS' – Suresh

ответ

0

Я предполагаю, что ваш запрос преобразуется LEFT JOIN следующим образом:

SELECT 
    i.ID 
FROM item_tb i LEFT JOIN stocks_tb s ON i.ID = s.itemID 
WHERE 
    i.coID = '". $_SESSION['coID'] ."' 
    AND i.isProduct = '1' 
    AND i.isBom = '0' 
    AND s.brID = '".$brId."' 
    AND s.itemID IS NULL; 

и это быстрее, чем ваш запрос.

+0

привет, чувак, спасибо за ответ. Я попробовал ваш запрос, но он не возвращает никакой записи. мой запрос на самом деле пытается извлечь все записи из item_tb, которых нет в share_tb. он работает, но исполнение слишком велико. –

+0

@AdrianC. Хамм. Можете ли вы разместить свою схему и данные в sqlFiddle? У меня есть тест в MySQL, я создал две таблицы (tbl1, tbl2) и искал все строки из tbl1 не в tbl2, используя LEFT JOIN. но это сработало. –

+0

@AdrianC. Вот что я испытал. http://sqlfiddle.com/#!2/d12344/1/0 извините, если я вас неправильно понял. –

0

используется много и оператор ... Используйте кронштейн внутри и состояние .. Вот это

+0

. Пожалуйста, разверните свой ответ. Что вы подразумеваете в точности и как это поможет ускорить запрос OP. – laalto

+0

ваш запрос должен быть должен выглядеть следующим образом ВЫБОР meta_name, meta_value ОТ wp_usermeta ГДЕ (meta_name = 'last_name' И meta_value LIKE '% Mahajan%') ИЛИ (meta_name = 'first_name' И meta_value LIKE «% в % '); – mamun0024

Смежные вопросы