Magento2 Indexing Change Mode programmatically
Magento2 Indexing Mode
You can set the mode via command line
php bin/magento indexer:set-mode {realtime|schedule} [indexer-name]
“realtime” is equal to “Update on Save” and “schedule” is equal to “Update by Schedule”.
Magento2 Indexing overview
Indexing is how Magento transforms data such as products and categories, to improve the performance of your storefront. As data changes, the transformed data must be updated or reindexed. Magento has a very sophisticated architecture that stores lots of merchant data (including catalog data, prices, users, and stores) in many database tables. To optimize storefront performance, Magento accumulates data into special tables using indexers.
Magento2 Indexing modes
Reindexing can be performed in two modes:
- Update on Save - index tables are updated immediately after the dictionary data is changed.
Update on Save indexers must use custom code (plugins, events or any other working approach) in order to trigger reindexing when entities are saved/deleted etc.
- Update by Schedule - index tables are updated by cron job according to the configured schedule.
Update by Schedule does not support the customer_grid indexer. You must either use Update on Save or reindex the customer grid manually (bin/magento indexer:reindex customer_grid).
Magento2 Indexing types
Each index can perform the following types of reindex operations:
- Full reindex, which means rebuilding all the indexing-related database tables
Full reindexing can be caused by a variety of things, including creating a new web store or new customer group.
You can optionally fully reindex at any time using the command line. - Partial reindex, which means rebuilding the database tables only for the things that changed (like changing a single product attribute or price)
The type of reindex performed in each particular case depends on the type of changes made in the dictionary or in the system. This dependency is specific for each indexer.
Reference