Caching tables in database systems is most beneficial for small tables that are frequently retrieved with a full table scan. Keeping these small tables in cache memory avoids disk I/O costs. Large tables require too much cache space, and rarely retrieved tables do not yield enough performance improvement to justify cache space.