29 private $storeManagement;
34 private $indexerResource;
39 private $metadataPool;
51 $this->storeManagement = $storeManagement;
52 $this->indexerResource = $indexerResource;
53 $this->metadataPool = $metadataPool;
61 $connection = $this->indexerResource->getConnection();
62 $entityIdField = $this->metadataPool->getMetadata(ProductInterface::class)->getLinkField();
64 $maxRowsPerStore = max(
65 $this->getMaxRowsPerStore(
67 $this->indexerResource->getTable(
'catalog_product_entity_int'),
70 $this->getMaxRowsPerStore(
72 $this->indexerResource->getTable(
'catalog_product_entity_varchar'),
77 return ceil($maxRowsPerStore * $this->storeManagement->getCount() * 500);
88 private function getMaxRowsPerStore(
95 [
'value_table' => $valueTable],
96 [
'count' =>
new \
Zend_Db_Expr(
'count(value_table.value_id)')]
98 $valueSelect->group([$entityIdField,
'store_id']);
102 [
'max_value' => $valueSelect],
__construct(StoreManagementInterface $storeManagement, Source $indexerResource, MetadataPool $metadataPool)