This Postgres database got tables of all sizes up to 10 million rows. Almost all have a BIGINT primary key counting from 1 and up.
Since BIGINT is 64 bits, but 10 million rows are well within the 2 billion maximum of INT, would it be worthwhile converting those BIGINT columns into INT (32 bits) and SMALLINT (16 bits) to speed up some heavy duty SQLs? Storing indexes/tables more compactly should give us a higher cache hit ratio. How much of a speedup could I expect if any? And are there any disadvantages by not using BIGINT? (assuming reaching max of INT/SMALLINT will never be an issue)