RDS or Object DB for 99.99% static data of 25 million rows in one table
You will keep the data 'forever', correct?  That is, there is no 'purging'.

Is there potentially a different entry for each year?  Or multiple entries for each year?

Why not have a single, non-partitioned, InnoDB, table with the PRIMARY KEY starting with the postcode.  Perhaps you want the address and DATETIME as other columns in the PRIMARY KEY.

PRIMARY KEY(postcode, address, as_of)


That would let you get an ordered history of who lived at $pc, $addr:

SELECT * FROM tbl
    WHERE postcode = $pc
      AND address = $addr
    ORDER BY as_of;


It would be very fast (much less than 1 second), regardless of hardware.  (With ENGINE=CSV, you are looking at minutes or hours for any query.)

If you envision other queries, let's see them.