Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация Update / 3 сообщений из 3, страница 1 из 1
28.02.2017, 17:20
    #39411844
olimpset
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация Update
Здравствуйте. Есть таблица, примерно 5-10 млн записей. Какой из двух запросов будет быстрее и какой оптимальный?
Код: sql
1.
UPDATE table SET val3 = asqdqw WHERE val1 >= 1 AND val2 = TRUE;


Или
Код: sql
1.
UPDATE table Set val3 = '' WHERE Id IN (SELECT Id WHERE val1 > 1 AND val2 = TRUE)



Не будет ли выполнятся SELECT для каждого поля в таблице или только один раз?
...
Рейтинг: 0 / 0
28.02.2017, 19:00
    #39411939
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация Update
Запрос 2 даст Syntax Error.
...
Рейтинг: 0 / 0
28.02.2017, 19:27
    #39411963
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Оптимизация Update
AkinaЗапрос 2 даст Syntax Error.И даже если его исправить, все равно лучше первый вариант.
Особенно, если условие val2 = TRUE высокоселективное и на поле val2 есть индекс.

Вот еще подзабыл, разрешит ли MySQL использовать в подзапросе модифицируемую таблицу...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Оптимизация Update / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]