Magento typically stores catalog data in multiple tables, based on the Entity-Attribute-Value (EAVEntity Attribute Value) model. Because attributes are stored in many tables, SQL queries are sometimes long and complex.
In contrast, a flat catalog creates new tables on the fly, where each row contains all the necessary data about a product or category. The flat catalog is updated automatically—either every minute, or according to your cron job. Flat catalog indexing also applies to catalog and shopping cart price rules. A catalog with as many as 500,000 SKUs can be indexed quickly as a flat catalog.