I previously explained that Postgres allows multiple databases per cluster. The outstanding question might be, when should I use multiple clusters, multiple databases, or multiple schemas? The following table outlines the advantages of the various container types:
Feature | Cluster | Database | Schema |
Isolated Server Start/Stop | ✓ | ||
Connection Control | ✓ | ✓ | |
Private System Tables | ✓ | ✓ | |
Private Plug-Ins | ✓ | ✓ | |
Isolated Administration | ✓ | ||
Shared Administration | ✓ | ✓ | |
Isolated Resource Usage | ✓ | ||
Shared Resource Usage(1) | ✓ | ✓ | |
Data Isolation(2) | ✓ | ✓ | |
Cross-Container Queries | ✓ |
(1) A large number of data containers increases the usefulness of resource sharing, e.g. shared_buffers.