Каков наилучший способ обновить значение column1 из записи, содержащей max (column2)?

#sql #postgresql #optimization #query-optimization

#sql #postgresql #оптимизация #оптимизация запросов

Вопрос:

Я придумал это решение:

 UPDATE sessions
SET time_stop = now()
WHERE time_start = (SELECT max(time_start) FROM sessions);
  

Однако у меня такое чувство, что это не оптимальный способ сделать это. Мне были бы интересны другие, лучшие способы достижения того же результата.

Спасибо.

PS: если вы считаете, что лучшего способа нет, пожалуйста, скажите об этом тоже.

Ответ №1:

Я с трудом вижу способ оптимизировать этот запрос, кроме настройки индекса в sessions.time_start.

Комментарии:

1. Если time_start проиндексирован, это должно произойти практически мгновенно. И он обрабатывает случай связей.