Задавайте вопросы, мы ответим
Вы не зашли.
Добрый вечер, подскажите является ли такой запрос ресурсоемкий?
Пример:
SELECT `id` INTO `_id` FROM tab1 WHERE name='Petya';
SELECT ROWS_FOUND(); // Равен 0, т.к в базе нет имени `Petya` следовательно переменная `_id` равна NULL
UPDATE tab2 SET st=st+1 WHERE id=_id;
SELECT ROW_COUNT();// Обновлено 0 строк.
Несет ли данная конструкция лишнею нагрузку или на такие запросы Mysql не затрачивает ресурсов?
Или лучше в таких случаях делать проверку на наличие данных, что то типа этого:
SELECT `id` INTO `_id` FROM tab1 WHERE name='Petya';
IF(ROWS_FOUND()=1) THEN
UPDATE tab2 SET st=st+1 WHERE id=_id;
END IF;
???
Отредактированно simple (12.03.2011 20:49:04)
Неактивен
Вот еще вопрос, а что означает надпись Impossible WHERE noticed after reading const tables после исполнения команды EXPLAIN, и все колонки начиная от table и кончая rows в выходной таблице EXPLAIN равны NULL???
Неактивен
Что-то не делать всегда дешевле по ресурсам, чем что-то делать. Даже не
смотря на то, что запрос выполнится всегда мгновенно, т.к. отработает на
этапе оптимизации. В EXPLAIN как раз написано то, что оптимизатор понял,
что запрос выполнять смысла нет, т.к. данных не получит.
Неактивен