Blog post - performance Magento 2
2 min 4 janvier 2023

Performance des collections Magento 2

Tout développeur web travaillant sur Magento 2 sait qu’il s’agit d’un CMS extrêmement gourmand en ressource. Il est donc important de savoir optimiser les performances de nos actions.

Voyons ici 2 astuces sur comment optimiser les performances des collections Magento 2

1/ Sélectionnez seulement ce dont vous avez besoin

Avant toute chose il faut savoir que monter une collection est simplement la création d’une requête SQL.

Et dans toute requête SQL on préfèrera sélectionner seulement ce dont on a besoin. Donc plutôt que de sélectionner tous les fields et attributes de nos items pourquoi ne pas simplement prendre ce dont on aura besoin ?

Pour ça 2 méthodes existent :

->addFieldToSelect(['entity_id'])
->addAttributeToSelect(['color'])

2/ Utilisez limit au lieu de getFirstItem ou getLastItem

Lorsque vous utilisez la méthode getFirstItem ou getLastItem sur une collection vous récupèrez la collection complète depuis la base de données puis vous n’utilisez que le premier (ou dernier) item de cette collection.

Le plus économe est d’utiliser la directive LIMIT de SQL à l’aide de la méthode limit() à chainer juste après getSelect()

->getSelect()->limit(1);

Test réalisé sur  une collection d’environ 5500 produits :

$item = $collection->getFirstItem();
GetfirstItem method Magento 2
$collection->getSelect()->limit(1);
limit method Magento 2