Забавянето вероятно е причинено от математически операции, а не от извличане на данни от таблица. Част от критериите ви не са спрямо полетата със записи, а срещу резултата от математическата операция върху други записи, така че се превръща в O(N).
Причината, поради която Postgres не използва индекс и вместо това избира сканиране на Seq, е, че той решава, че повечето от записите в таблицата ще трябва да бъдат извлечени по време на заявка. Когато повечето записи в таблицата трябва да бъдат извлечени, индексите може да не донесат голяма полза, ако има такива.
За да ускорите нещата, трябва да обмислите използването на пространствени индекси и базирано на близост търсене на PostGis или, алтернативно, Elasticsearch с Заявка за географско разстояние .