PostgreSQL with the PostGIS extension would appear to have everything you need to manage this data.
PostGIS has a fairly rich set of functions that deal with rasters like the files that you have described. Further documentation on enabling and using rasters is here.
Once you have the rasters loaded a query like the following should perform reasonably well
SELECT p.Identifier, ST_Value(r.rast, p.geog) AS elevation
FROM query_point p
INNER JOIN elevation_raster r ON ST_Intersects(r.rast, p.geog);