Skip to content
This repository was archived by the owner on Nov 19, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/_data/toc/php-developer-guide.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ pages:

- label: Asynchronous/deferred operations
url: /extension-dev-guide/async-operations.html

- label: Service contracts
url: /extension-dev-guide/service-contracts/service-contracts.html

Expand Down Expand Up @@ -166,7 +166,7 @@ pages:
url: /extension-dev-guide/indexing.html

- label: Indexer optimization
url: /extension-dev-guide/indexer-batch.html
url: /extension-dev-guide/indexer-optimization.html

- label: Adding a custom indexer
url: /extension-dev-guide/indexing-custom.html
Expand Down Expand Up @@ -214,7 +214,7 @@ pages:
url: /extension-dev-guide/message-queues/implement-bulk.html

- label: Handling outdated in-memory object states
url: /extension-dev-guide/message-queues/refresh-config.html
url: /extension-dev-guide/message-queues/refresh-config.html

- label: Message queues overview
url: /extension-dev-guide/message-queues/message-queues.html
Expand All @@ -227,7 +227,7 @@ pages:

- label: Adding extension attributes to entity
url: /extension-dev-guide/extension_attributes/adding-attributes.html

- label: Adding an admin grid
url: /extension-dev-guide/admin-grid.html

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
---
group: php-developer-guide
title: Indexer optimization
redirect_from:
- /guides/v2.4/extension-dev-guide/indexer-batch.html
---

## Indexer Batching
Expand Down Expand Up @@ -189,6 +191,26 @@ To determine whether any 3rd-party extensions are using the Product EAV indexer,

To disable the Product EAV indexer in the Admin, go to **Stores** > Settings > **Configuration** > **Catalog** > **Catalog** > **Catalog Search** and set the value of **Enable EAV Indexer** to No.

## Customer group limitations by websites

By default, all websites are assigned to a customer group. If there are a lot of products, websites and customer groups (shared catalogs), the indexation time of product price and catalog rule indexers can be heavily increased because websites, customer groups (shared catalogs) and product SKUs are multiplied in Product Price and Catalog Rule indexer related tables.

It is possible to exclude websites from a customer group (shared catalog) on [customer group create/edit page](https://docs.magento.com/user-guide/customers/customer-groups.html#create-a-customer-group). This can decrease Product Price and Catalog Rule indexation time because excluded websites do not participate in indexation.

When a customer group with a new, excluded website is saved, Product Price, Catalog Rule and Catalog Search indexes are invalidated. If you have many products, websites and customer groups, it is recommended that you pause your reindex processes for a while until you have finished excluding websites from customer groups.

It is not possible to exclude websites from a shared catalog on a shared catalog create/edit page. It is possible to exclude websites from a customer group that is created from a shared catalog.

{:.bs-callout-info}
No websites are excluded from a customer group or shared catalog by default.

{:.bs-callout-info}
You cannot exclude websites from the `NOT LOGGED IN` customer group.

{:.bs-callout-warning}
When a website is added to the excluded customer group and a customer who belongs to this group is trying to login to their account on the excluded website, the customer gets the `"This website is excluded from customer's group."` warning.
Customers are not allowed to login to the website even if [the scope of customer accounts is shared with all websites](https://docs.magento.com/user-guide/customers/account-scope.html) because there are no prices in the index table for this user.

{:.ref-header}
Related topics

Expand Down
6 changes: 6 additions & 0 deletions src/guides/v2.4/performance-best-practices/advanced-setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,12 @@ For example, if you are running a profile similar to B2B Medium, you can overrid
{:.bs-callout-info}
We have not enabled batching for the catalog rules indexer. Merchants with a large number of catalog rules need to adjust their MySQL configuration to optimize indexing time. In this case, editing your MySQL configuration file and allocating more memory to the TMP_TABLE_SIZE and MAX_HEAP_TABLE_SIZE configuration values (the default is 16M for both) will improve performance for this indexer, but will result in MySQL consuming more RAM.

### Limit customer groups and shared catalogs by websites

Large numbers of product SKUs, websites and customer groups or shared catalogs impacts the indexation time of Product Price and Catalog Rule indexers. This is because all websites are assigned to all customer groups (shared catalogs) by default.

To decrease indexation time it's possible to [exclude certain websites from customer groups (shared catalogs)]({{page.baseurl}}/extension-dev-guide/indexer-optimization.html#customer-group-limitations-by-websites).

## Set up Redis

Sometimes one Redis instance is not enough to serve incoming requests. There are several solutions that we can recommend to address this situation.
Expand Down