In this online lesson in our Optimizing Postgres Databases course, you’ll learn how Postgres databases store their own internal data for describing, debugging and identifying the bottlenecks in a system. Then, you’ll work on diagnosing those kinds of issues and implementing best-practice solutions them in a Postgres database.

To facilitate your learning of Postgres internals, we’ll take a project-based learning approach, and assist the Department of Housing and Urban Development in developing their Postgres cluster. Throughout this online lesson, you will investigate the tables and their datatypes and debug queries, as well as testing their efficiency.

In this lesson, you'll learn the set of internal tables each Postgres database uses to manage its entire structure, and you’ll learn about the information tables schema and the system catalog. You will then apply your knowledge to build your own description dictionary from scratch.

As you work through this lesson of the Postgres database optimization course, you’ll get to apply what you’ve learned from within your browser. Our interactive learning environment includes answer-checking to help you be sure you’ve grasped and can apply every new concept as you learn it.


  • Learn how Postgres manages meta information about databases and tables.
  • Learn what a Postgres schema is.
  • Learn how to create a description of a database from scratch.

Lesson Outline

1. Introduction
2. Investigating the Tables
3. Working with Schemas
4. Describing the Tables
5. Type Code Mappings
6. Readable Description Types
7. Number of Rows
8. Sample Rows
9. Next Steps
10. Takeaways