Re data caching, the answer is yes, and <a href=
http://www.ca.postgresql.org/docs/momjian/hw_performance/>it depends on how big your cache is</a>.
Re performance degrading, I wouldn't think that 12K rows would be enough to see a performance drop with a simple query. You could check your query in psql with EXPLAIN and make sure it's using the index(es) you think it should. Also, you will definitely see degredation if you are not VACUUM ANALYZEing on a regular basis.
If DB activity is indeed your bottleneck, you could cache the top level threads at the AOLserver level with util_memoize...