Generally Magento's index can be updated in 3 ways (depending on usage and configuration):
- "On Save"
- "By Schedule"
- Using
indexer:reindex
command
This is what I can gather from the description in the official documentation for each of these ways:
- The index will be updated immediately when e.g. a product is changed in the back end and saved.
- According to the graphic of the Indexing types in the documentation, when editing and saving a product, entries are made in a changelog table (via MySQL triggers). Magento's
cron:run
command (which would be set up to run every minute by default) will then index those changed products. - This command will update the complete index.
Just for clarification I want to know if the following is true for each of the 3 ways of updating the index:
- The index is updated "On Save" only for the affected data (i.e. the changed product), not the whole index (which would take very long).
- The index is only updated for the changed products (should be obvious).
- The index is updated for all products, regardless of whether they have been changed or not.
And to clarify further: is it true, that the only way to update the index only for changed products is via "On Save" or via "By Schedule" plus cron:run
?