Interactivated logo

Hoe werkt Magento-indexering?

Jan 16, 2019
Alle blogberichten

Quick answer

Refactor if the core structure still works. Rebuild if architecture, performance, and change-cost are already fighting growth. Not sure? Calculate the cost below first.

Signs your MVP is becoming a bottleneck

1

Every feature takes 3× longer

Your codebase has become too tightly coupled. Small product updates now create complexity across unrelated systems.

Medium → High
2

Developers avoid parts of the codebase

Some systems have become unstable enough that engineers no longer trust them. "Nobody wants to touch that module."

High
3

AI-generated code created inconsistent architecture

Duplicated logic, conflicting patterns, and over-engineered solutions with unnecessary dependencies throughout the codebase.

Medium → High
4

Onboarding new developers takes weeks

Business logic is scattered across the product. Different parts follow different conventions. Team velocity slows as headcount grows.

Medium
5

Small changes create unrelated bugs

A frontend adjustment should not break billing. The architecture has become too tightly coupled across the platform.

High
6

Testing is nearly impossible

Without reliable tests, deployments become stressful, refactoring becomes dangerous, and developers lose confidence.

High
7

Deployments feel risky every time

You no longer have a development-speed problem — you have a reliability problem. And it compounds aggressively as you scale.

Critical

Refactor vs. Rebuild vs. Incremental

Refactor codebase

Best forMaintainable but messy architecture
RiskLower
CostMedium
OutcomeFaster iteration

Rebuild software

Best forFundamentally broken systems
RiskHigh
CostHigh
OutcomeLong-term reset

Incremental migration

Best forScaling post-MVP startups
RiskMedium
CostMedium
OutcomeControlled modernization
Om volledig te begrijpen hoe Magento-indexering werkt, heb je een korte introductie tot database-indexering in het algemeen nodig. Indexering is in principe een sorteermethode voor records, of in dit geval databasevelden. Je kunt dit gebruiken om specifieke informatie te vinden, maar vooral om die informatie bij te werken door er nieuwe waarden aan toe te kennen.

Verschillende programmeertalen pakken dit probleem op verschillende manieren aan, omdat ze allemaal proberen de efficiëntie te maximaliseren of de hoeveelheid gebruikte schijfruimte te minimaliseren. De manier waarop 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 met bloktoegang.

Hoewel indexering complex lijkt, en dat ook daadwerkelijk is, heb je niet veel programmeerervaring nodig om het te begrijpen als je Magento gebruikt. Hier volgt een overzicht van hoe Magento PHP-indexering aanpakt.

Ingebouwde Magento-indexering

Magento gebruikt 10 indexers om gegevens van producten of categorieën te transformeren. Hoewel dit voldoende is voor de meeste basis e-commerce websites, kunt u met de applicatie ook uw eigen aangepaste indexers maken.

Omdat Magento-indexering niet is geoptimaliseerd voor elke mogelijke situatie, kan het nodig zijn om de standaardlijst met indexers aan te vullen met uw eigen indexers. Vooral wanneer u een website zodanig aanpast dat er tijdens updates geavanceerde zoekopdrachten nodig zijn.

Componenten die betrokken zijn bij indexering

1. Magento_indexer

Deze component is verantwoordelijk voor het uitvoeren van de volgende acties: declaratie van indexers, status van indexers, status van indexers (actief), configuratie van de modus voor indexers.

2. Magento\Framework\Mview

De Mview-component is vergelijkbaar met de "materialized view" van MySQL. In het geval van Magento resulteert deze functie echter in het uitvoeren van PHP-code. Dit verschilt van SQL-queryʼs omdat het meerdere queryʼs tegelijkertijd mogelijk maakt.

Indexering in Magento

Zoals eerder vermeld, is er een component die Magento-indexering vrijwel gelijk maakt aan indexering op databaseniveau in MySQL. Magento is echter veelzijdiger en aanpasbaarder als het gaat om indexering.

Standaard objectindexering wordt normaal gesproken uitgevoerd op een grote tabel die catalogusproducten of categorieën opslaat. Dit is over het algemeen een snelle manier om zoekopdrachten uit te voeren, maar er is een oud probleem om rekening mee te houden: het toevoegen van nieuwe attributen.

Attributen kunnen van alles zijn, van een kortingsprijs of een kleur tot het toevoegen van een leeftijdsbereik voor bepaald speelgoed of kleding. De gebruikelijke manier om dit te doen is door een nieuwe kolom aan de tabel toe te voegen. Maar wat als slechts een handvol producten dat nieuwe attribuut heeft? Hoe kun je dan onderhoud uitvoeren zonder de website te vertragen?

Magento lost dit probleem op door de klassieke tabel op te splitsen in kleinere eenheden die gemakkelijker te categoriseren zijn. Deze flexibiliteit stelt verkopers en websitebeheerders in staat productcategorieën en -typen beter te definiëren.

Om de prestaties verder te verbeteren, gebruikt Magento nog een slimme truc. Dit werkt als je ervan uitgaat dat alle attributen duidelijk zijn gedefinieerd en er een complete, grote tabel is gegenereerd.

Hierdoor kan Magentoʼs indexering de hele tabel bij elke wijziging opnieuw aanmaken. Kort gezegd, wanneer een attribuut verandert, bijvoorbeeld de prijs van een T-shirt, wordt de oude tabel met die informatie gewist en opnieuw gegenereerd met de nieuwe waarde. Al het andere blijft intact.

Uiteindelijk voorkomt dit dat er onnodig resources worden verspild aan 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 een van de volgende zijn:

1. Geldig

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

2. Ongeldig

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

3. Bezig

Dit betekent dat het indexeren al bezig is.

Magento kan op twee manieren of in twee modi het herindexeren afhandelen. Je kunt kiezen tussen "Bijwerken bij opslaan" en "Bijwerken volgens schema".

De eerste optie kan de browse-ervaring iets trager maken, maar het is de beste manier om ervoor te zorgen dat alles up-to-date is. Het geplande herindexeren gebeurt via een cronjob. Dit is de standaard PHP-methode voor het maken en uitvoeren van verschillende terugkerende of geplande taken.

Beide opties moeten handmatig worden ingesteld om Magento actie te laten ondernemen. Dit kan via de commandoregel, maar ook via het beheerderspaneel.
  • Ga naar Magento-beheer
  • Selecteer systeem
  • Selecteer indexbeheer
  • Vink de selectievakjes aan voor de indexeerders die door de updates moeten worden beïnvloed
  • Ga naar de actielijst
  • Selecteer de indexeringsmodus
  • Klik op verzenden

De beste manier om te indexeren in Magento

Of u nu een kleine webwinkel of een grote e-commercewebsite beheert, handmatig indexeren wordt nog steeds aanbevolen. Het Magento-platform is zeer aanpasbaar, maar het is niet het snelste als het gaat om het uitvoeren van grote updates.

Een veelvoorkomend probleem met PHP-gebaseerde indexering is dat grote updates te lang kunnen duren. Als het proces te lang duurt, kan het script abrupt stoppen. Dit leidt vaak tot gegevenscorruptie en uiteraard zal de prestatie van uw website daar ook onder lijden.

Handmatig indexeren biedt u één belangrijk voordeel: u kunt een tijdstip kiezen waarop het websiteverkeer lager is. Dit betekent dat u de gebruikerservaring van uw potentiële klanten niet verstoort.

U kunt er ook voor kiezen om een update over twee dagen of twee specifieke tijdsperioden te verdelen wanneer de verkeersactiviteit het laagst is. Dit kan de kans dat het PHP-script vastloopt en uw gegevens corrumpeert aanzienlijk verkleinen.

Tot slot

Hoewel Magento niet het snelste indexeringsproces heeft, hebben updates van de code in de afgelopen jaren dit zeker verbeterd. Magento is niet meer zo traag als vroeger en biedt nog steeds een flexibiliteit die enigszins beter is dan die van klassieke MySQL-indexering.

Er zijn echter nog steeds enkele nadelen wat betreft automatische updates en je moet nog steeds al je attributen aan de tabel toevoegen voordat je deze genereert. Het is zeker niet verplicht, maar de extra tijd en moeite die je er vooraf in steekt, bespaart je veel tijd en middelen bij het herindexeren van je webwinkel.
You may also like
Person avatar
Person avatar
Person avatar
We Staan Voor je Klaar

Ons expertteam zit klaar - dag en nacht - om je te helpen met planning, budgetten en het realiseren van jouw idee. Naadloos. Geen stress. Geen vertraging.

Laten We Dit Samen Uitvogelen

Laten We Praten En Iets Geweldigs Bouwen Samen.

Of het nu gaat om een schaalbaar SaaS-platform, een innovatieve marktplaats, een cutting-edge eCommerce-oplossing of een gedurfd nieuw techidee - wij hebben de expertise om het realiteit te maken. Naadloos en zonder stress.Geen drama, geen bla bla - gewoon retegoede digitale oplossingen.

Interactivated solutions contact person

Roy Van Eijsselsteijn

CEO | Head of Business Development

Schrijf Een Bericht

Door het formulier te verzenden, ga ik akkoord met de regels voor de verwerking van mijn persoonsgegevens zoals beschreven in hetPrivacybeleid.

Deze site wordt beschermd door reCAPTCHA en de Google Privacy Policy en Servicevoorwaarden zijn van toepassing.