If every time you add information or as time passes your database is slower, there are several reasons that can cause this but it is not that your database is full.
Here are some tips to do it faster:
Tus tablas siempre deben tener una llave entera.
Minimizar en la medida de lo posible las llaves compuestas.
Si los querys ademas de resolver por las llaves también usan otros campos en las consultas, conviene indizar dichos campos.
Las clausulas AND en la parte del where deben ir acomodados de tal forma que el primer AND obtenga el conjunto mas pequeño de datos, esto para que se resuelva el query mas rapido.
I leave this link that explains how to choose primary keys in databases .
I advise you to review the costs of your queries with the explain statement of postgres for you can find out which one (s) takes more and you can index them and solve your problem.
Finally if you save binary files in the database in this thread you can check many points to consider so that the performance of your application is not affected when saving in database, if not choose the fylesystem.
Personally I think you should start with the indices and the costs of the queries since it is the most likely.