One of the key tenets of database system design is making efficient
use of storage and memory resources. However, existing database
system implementations are actually extremely wasteful of such
resources; for example, most systems leave a great deal of empty
space in tuples, index pages, and data pages, and spend many
CPU cycles reading cold records from disk that are never used.
In this paper, we identify a number of such sources of waste, and
present a series of techniques that limit this waste (e.g., forcing
better memory locality for hot data and using empty space in index
pages to cache popular tuples) without substantially complicating
interfaces or system design. We show that these techniques
effectively reduce memory requirements for real scenarios from
the Wikipedia database (by up to 17.8×) while increasing query
performance (by up to 8×)