Ваш вопрос зависит от СУБД.
В большинстве ситуаций rowid является суррогатом для адреса строки в пространстве базы данных. Некоторые СУБД хранят фактический адрес в индексе, а не rowid, даже если все, что вы можете видеть, - это rowid. Если СУБД хранит rowid в индексе, какой-то механизм все равно должен перевести это в адрес, прежде чем можно будет напрямую выполнить поиск строки.
Практически в любой СУБД обновление к таблице и обновление индекса будут выполняться в контексте одной и той же транзакции. Это означает, что вам не важно, обновляется ли индекс перед таблицей, или таблица обновляется до индекса.
Для единственной СУБД, чья внутренность, которую я знаю, записи индекса обновляются по строкам за строкой сразу после обновления самой строки. И записи индекса содержат адреса строк, а не идентификаторы строк.
Мне никогда не приходилось беспокоиться об этом на практике, потому что к концу транзакции все это было сделано в любом случае.
В любом из этих случаев я бы не назвал это «восстановление индекса». Это действительно обновление индекса. «Перестроение индекса» предлагает массивную переписку.
Спасибо за отличные ссылки, @APC. – Moeb