interactivated blog

magento & ecommerce

Hoe werkt Magento-indexering?

Om volledig te begrijpen hoe Magento-indexering werkt, heb je over het algemeen een spoedcursus over database-ndexering nodig. Indexeren is in principe een sorteermethode voor gegevens, of in dit geval, databasevelden. Je kunt dit gebruiken om specifieke informatie te vinden, maar vooral om die informatie bij te werken door nieuwe waarden toe te kennen.

Nu pakken verschillende programmeertalen deze kwestie op een andere manier aan, omdat elke taal de efficiëntie probeert te maximaliseren of de hoeveelheid gebruikte schijfruimte te verminderen. De manier waarop de velden zijn georganiseerd is net zo belangrijk als de zoekmethode.

Een binaire zoekopdracht is bijvoorbeeld veel sneller dan een lineaire zoekopdracht. Een binaire zoekopdracht kan echter alleen worden uitgevoerd op een reeds gesorteerd veld van bloktoegangen.

Hoewel indexeren vrij complex lijkt, en in feite vrij complex is, heb je niet veel programmeerervaring nodig om het uit te werken als je Magento gebruikt. Hier is een overzicht van hoe MagentoPHP-indexering aanpakt.

Ingebouwde Magento-indexering

Magento gebruikt 10 indexeerders om gegevens van producten of categorieën om te zetten. Hoewel dit genoeg is voor de meeste eenvoudige E-commerce websites, kun je met de applicatie ook jouw eigen indexeerders op maat maken.

Omdat Magento-indexering niet voor elke potentiële situatie is geoptimaliseerd, kan het nodig zijn om de standaard indexeringslijst aan te vullen met jouw eigen lijst. Vooral wanneer je een website zo aanpast dat er tijdens het actualiseren geavanceerd gezocht moet worden naar gegevens.

Indexeringscomponenten

1. Magento_indexer

Deze component is verantwoordelijk voor het uitvoeren van de volgende acties: indexeringsdeclaratie, indexeringsstatus, indexeringsuitvoering, modusconfiguratie van de indexeringsuitvoering.

2. Magento\Framework\Mview

De Mview-component is vergelijkbaar met MySQL’s “gematerialiseerde weergave”. Echter, in het geval van Magento, resulteert deze functie in het uitvoeren van de PHP-code. Dit is anders dan bij SQL-zoekopdrachten omdat er meerdere zoekopdrachten tegelijk kunnen worden uitgevoerd.

Indexering in Magento

Zoals eerder vermeld, is er een component die Magento-indexering vrij vergelijkbaar maakt met MySQL databaseniveau-indexering. Magento is echter veelzijdiger en aanpasbaar als het gaat om indexering.

De standaard objectindexering wordt normaal gesproken uitgevoerd op een grote tafel waarop catalogusproducten of categorieën worden opgeslagen. Dit is over het algemeen een snelle manier om te zoeken, maar er is een eeuwenoud probleem om te overwegen. Toevoegen van nieuwe attributen.

Attributen kunnen variëren van een kortingsprijs of een kleur tot het toevoegen van een leeftijdscategorie voor bepaald speelgoed of kleding. De manier waarop dit meestal gebeurd is door een nieuwe kolom aan de tabel toe te voegen. Maar wat als slechts een handvol producten dat nieuwe attribuut hebben? Hoe ga je dan om met het onderhoud zonder de website te vertragen?

Magento pakt dit probleem aan door de klassieke tabel op te splitsen in kleinere eenheden die makkelijker te categoriseren zijn. Dankzij dit niveau van flexibiliteit kunnen handelaren en websitebeheerders de productcategorieën en types beter definiëren.

Om de prestaties verder te verbeteren, maakt Magento gebruik van een andere handige truc. Dit werkt als je ervan uitgaat dat alle attributen duidelijk gedefinieerd zijn en er een volledige grote tabel is gegenereerd.

Dit stelt Magento’s indexering in staat om bij elke wijziging de hele tabel opnieuw te maken. In principe, wanneer een attribuut verandert, bijvoorbeeld de prijs van een T-shirt, wordt de oude tabel met die informatie gewist om opnieuw gegenereerd te worden met de nieuwe toegevoegde waarde, en al het andere blijft intact.

Aan het eind van de dag pakt dit de verspilling aan van middelen voor het zoeken in meerdere categorieën.

Hoe Magento herindexering activeert

Op basis van de indexeringsstatus en de indexeringsmodus wordt het indexeringsmechanisme geactiveerd wanneer dat nodig is. De waarde van een indexeringsstatus kan elk van de volgende zijn:

1. Geldig

Dit betekent dat er geen herindexering nodig is. De geldige status verschijnt wanneer de gegevens gesynchroniseerd zijn.

2. Niet eldig

Dit betekent dat de index moet worden bijgewerkt omdat de oorspronkelijke gegevens zijn gewijzigd.

3. Bezig

Dit betekent dat de indexering al aan de gang is.

Nu zijn er twee manieren of modi voor Magento om herindexering aan te pakken. Je kunt kiezen tussen “Bijwerken bij pslaan” en “Bijwerken volgens chema”.

De eerste optie maakt het browsen misschien iets langzamer, maar het is de beste manier om ervoor te zorgen dat alles bijgewerkt is. De geplande herindexering wordt uitgevoerd door een zogenaamde Cronjob. Het is de standaard PHP-methode voor het maken en uitvoeren van verschillende repetitieve of geplande taken.

Beide opties moeten handmatig worden ingesteld om Magento in staat te stellen om actie te ondernemen. Dit kan met behulp van de commando-regel, maar je kunt dit ook doen met behulp van het beheerderspaneel.

  • Ga naar Magento Beheerder
  • Selecteer Systeem
  • Selecteer Index Beheren
  • Selecteer het selectievakje voor de indexeerders waarvan je wilt dat ze worden beïnvloed door de actualiseringen
  • Ga naar Actielijst
  • Selecteer de indexeringsmodus
  • Klik op Indienen

Beste manier om te indexeren in Magento

Of je nu een kleine online winkel of een grote e-commerce website hebt, handmatig indexeren is nog steeds aan te raden. Het Magento platform is zeer aanpasbaar, maar het is niet de snelste als het gaat om het maken van grote actualisaties.

Een veelvoorkomend probleem met PHP-gebaseerde indexering is dat grote actualisaties te lang kunnen duren. Als het proces te lang duurt, kan het script abrupt eindigen. Dit veroorzaakt vaak datacorruptie en natuurlijk zal ook jouw website een terugval in prestatievermogen krijgen.

Met handmatige indexering kun je een belangrijk ding doen. Je kunt een tijdstip kiezen waarop het verkeer op de website langzamer verloopt. Dit betekent dat je de gebruikerservaring van jouw potentiële klanten niet verpest.

Je kunt er ook voor kiezen om een actualisering te splitsen over twee dagen of twee specifieke tijdsframes wanneer de verkeersactiviteit het laagst is. Dit kan de kans dat het PHP-script tekortschiet en jouw gegevens beschadigt aanzienlijk verkleinen.

Een laatste woord

Hoewel Magento niet het snelste indexeringsproces heeft, hebben actualiseringen van de code in de afgelopen jaren de code zeker verbeterd. Magento is niet meer zo langzaam als vroeger en het slaagt er nog steeds in om een niveau van flexibiliteit te behouden dat iets beter is dan dat van de klassieke MySQL-indexering.

Er zijn nog steeds een aantal nadelen in termen van automatische actualiseringen en je moet nog steeds al jouw attributen aan de tabel toevoegen voordat je het genereert. Het is absoluut niet verplicht, maar het extra werk dat je er vooraf in stopt, bespaart je veel tijd en middelen wanneer je probeert te herindexeren voor jouw online winkel.

Reactie plaatsen
  • *Verplichte velden

By interactivated • on January 16, 2019

Contacteer ons
Snel contact met een van onze specialisten
Interactivated Ecommerce Netherlands
Herestraat 106,
9711 LM Groningen
Nederland
Postbus 5171
9700 GD Groningen
Nederland
+31(0)50 711 9940
KVK: 58348646
BTW: NL 852998521B01

* Vereiste velden