Съезжает ли индексы после удаления записей?
Индексы, будучи созданными один раз - остаются навечно.
Если из таблицы удалены данные (50%) - то примерно
столько - же данных будет удалено соотвественно и из индекса.

Дисковое пространство которое занимает индекс - обычно не освобождается.
Тут надо читать документацию по конкретной БД. Oracle может вести себя так, 
Postgres - как-то иначе.

P.S. Интересная терминология. Съезжает...
P.P.S Лётчик?
PostgreSQL: индексы и корреляция данных.
REINDEX.
Параметры хранения индекса.