How to index/optimize sum of two columns in PostgreSQL?
If you have used the same TTL for every record you can avoid functional indexing by simple moving the TTL to the right side of comparison (thanks to jjanes for correction):

DELETE
  FROM temporarydata
 WHERE id IN ( SELECT id 
                 FROM temporarydata
                WHERE created &lt;= 1553755330 - ttl
                LIMIT 1000
             )


Optimizer will calculate the difference only once and then will use it against the indexed created column.



If you need the different TTL for different records you can store not the created -- ttl pair but precalculated created -- expires one



And you can use functional indexing:

CREATE INDEX expires ON temporarydata ((created+ttl));