SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 12.03.2011 20:48:41

simple
Активист
Зарегистрирован: 25.11.2010
Сообщений: 168

Пустой запрос UPDATE

Добрый вечер, подскажите является ли такой запрос ресурсоемкий?
Пример:

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)

Неактивен

 

#2 12.03.2011 22:58:30

simple
Активист
Зарегистрирован: 25.11.2010
Сообщений: 168

Re: Пустой запрос UPDATE

Вот еще вопрос, а что означает надпись Impossible WHERE noticed after reading const tables после исполнения команды EXPLAIN, и все колонки начиная от table и кончая rows  в выходной таблице EXPLAIN равны NULL???

Неактивен

 

#3 16.03.2011 21:16:08

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Пустой запрос UPDATE

Что-то не делать всегда дешевле по ресурсам, чем что-то делать. Даже не
смотря на то, что запрос выполнится всегда мгновенно, т.к. отработает на
этапе оптимизации. В EXPLAIN как раз написано то, что оптимизатор понял,
что запрос выполнять смысла нет, т.к. данных не получит.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson