Magento’s price index is precomputed database data that helps catalog queries find prices for the relevant website and customer group. It is not the product’s only source of pricing data, and it is not the full-page cache. When reindexing is slow, the number of products is only part of the story: websites, customer groups, shared catalogs, batch processing, database capacity, and custom pricing logic can all add work.
What the Magento 2 price index does
Product pricing inputs are stored in catalog data. The catalog_product_price indexer derives lookup rows from those inputs so catalog operations can use precomputed prices for relevant contexts, rather than treating every catalog request as a fresh calculation from scratch.
As an Amazon Associate I earn from qualifying purchases.
A documented schema reference for catalog_product_index_price lists these fields:
entity_id,customer_group_id, andwebsite_id, which identify the product and pricing context.tax_class_id, which identifies the product’s tax class.price,final_price,min_price,max_price, andtier_price, which hold price-related values used for catalog lookup.
The reference describes a primary key combining entity, customer group, and website. Treat this as a guide, not a guarantee for every release: verify the actual tables and schema in the deployed Magento version and installed extensions. The index is one part of price handling, not a complete account of every price a storefront may display.
#1 Best Overall
How base, special, and tier prices contribute
Magento pricing logic can derive a final price from a product’s base price and applicable special or tier pricing. The cited core pricing implementation shows that flow and also applies options in the path described. The code reference is from the mutable Magento 2.4-develop branch, so its exact behavior should be checked against the installed release and product-type modules.
Adobe’s pricing API documentation treats base, special, and tier prices as distinct operations; it also documents a global price-scope constraint for scheduling special prices. That distinction matters operationally: a price index is derived lookup data, while the catalog retains the underlying pricing inputs and rules. Product type, tax and display configuration, customer context, and custom modules can affect the final storefront result.
Why price reindexing can take a long time
More pricing dimensions mean more work
Adobe identifies the combination of products, websites, customer groups, and B2B shared catalogs as a cause of longer Product Price and Catalog Rule indexing. A catalog with many context combinations can require substantially more indexing work than its SKU count alone suggests.
Recommended Free Tools
Rank #2
Adobe notes that excluding websites from customer groups or shared catalogs can reduce indexing time where those exclusions are valid. This is a business configuration decision, not a safe universal optimization: changing it may prevent a customer group from being served on a website where it is currently needed.
Batch size and database memory interact
Price-index batches use temporary MEMORY tables. Adobe’s guidance discusses increasing innodb_buffer_pool_size or reducing batch size in response to a related memory error. Neither setting should be changed blindly: compare runtime, memory and temporary-table pressure, lock behavior, and available storage on the actual database.
Adobe documents an example catalog with 10 websites, 10 store groups, 20 store views, 300 tier prices, and about 40,000 products, including 254 configurables. In that particular workload, reducing the batch size from 5,000 to 1,000 was associated with a runtime change from about four hours to under two hours. The documentation also shows 5,000 as the default catalog_product_price batch size in the configuration it describes. These are documentation examples, not general benchmarks or a promise that a smaller batch will be faster on another installation; verify the default and behavior for the deployed version.
Rank #3
Table switching can reduce read/write collisions
For supported indexers, Adobe describes table switching: reindexing is performed in separate tables while reads continue against the active table. For Product Price, the guide names catalog_product_index_price and catalog_product_index_price_replica. The approach needs additional storage and must be confirmed for the deployed release and configuration.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Adobe’s guidance says indexers using table switching should use Update by Schedule. It warns that Update on Save can lose data if changes occur during a full reindex. Index mode is therefore not just a freshness preference; it can affect the safety of the reindexing process.
Extensions, product types, and competing work matter
Product types, pricing or indexing customizations, catalog imports, cron activity, database capacity, and locks can all affect observed duration. A slow run alone does not identify which factor is responsible. Check the installed release’s core behavior and any modules that hook into pricing or indexing before attributing the delay to Magento’s standard indexer.
Update on Save or Update by Schedule?
Magento’s indexer modes differ in when they process changes. The right choice depends on the required price freshness, the write workload, cron reliability, and whether table switching is configured for the installed version.
| Mode | When work runs | Operational consideration |
|---|---|---|
| Update on Save | When relevant catalog changes are saved. | Can add work to the save path. Adobe warns of possible data loss if changes occur during a full reindex when table switching is in use. |
| Update by Schedule | On the scheduled indexing path, which relies on cron. | Requires healthy cron processing; Adobe recommends it for indexers using table switching. |
Adobe’s Indexer module reference documents these modes and the relevant CLI commands. Exact freshness and latency trade-offs depend on the catalog’s update pattern and the health of scheduled jobs.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Repair Windows errors before they cause bigger problemsFix Now →Price index versus full-page cache
The price index is database-derived pricing lookup data. Full-page cache stores rendered page content for reuse. They solve different problems: cleaning page cache does not recalculate price-index rows, and reindexing does not by itself clear cached page responses.
Best Value
Adobe’s page-caching guidance describes Magento’s page-cache library as including a simple reverse proxy and recommends Varnish. It advises against making catalog, product, and CMS pages uncacheable because doing so harms performance. Diagnose cache behavior separately from indexer status, and do not use cache cleaning as a substitute for a price reindex.
How to investigate a slow price reindex
- Record the installation context. Note the Magento or Adobe Commerce version and edition, database version, product count and product-type mix, website count, customer-group count, and shared-catalog setup.
- Check indexer state and mode. Run
bin/magento indexer:statusandbin/magento indexer:show-mode. Review cron health and indexer logs as well as whether the indexer is invalid, stuck, or repeatedly scheduled. - Look for competing work. Check whether imports, other indexers, or overlapping full reindexes are running. Do not start another full reindex as the first diagnostic step.
- Measure database pressure. Review query duration, temporary-table and memory pressure, locks, resource use, and storage. If testing a batch-size change, use a repeatable workload and change one setting at a time.
- Inspect pricing customizations. Check product-type modules and extensions that affect pricing or indexing, and compare their behavior with the core code for the installed release.
- Check page caching on its own. Confirm that the cache backend is operating and that public catalog content remains cacheable. Keep cache cleaning separate from indexer recovery.
Run the price indexer deliberately
The Indexer module provides bin/magento indexer:reindex [indexer] to run a selected indexer. Use the installed release’s command documentation and target the appropriate indexer rather than repeatedly launching broad reindex jobs. Before a full run, confirm that cron or other indexing work will not create avoidable overlap, and monitor database resources and logs while it runs.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

