As databases grow, it's common to have a table or two become unmanageably large. If the table itself is much larger than the physical memory, and even its indexes stop fitting comfortably, query execution time will escalate. One way to deal with large tables is to partition them, which breaks the table into a series of smaller, related tables instead. You don't have to change your application, just keep querying the same table. But when the query can be answered by just using a subset of the data, rather than scanning the whole thing, this optimization can occur.
In this chapter we will be covering these topics:
- Table range partitioning
- Declarative partitioning
- Horizontal partitioning with PL/Proxy