Deadlocks in MySQL
In dit artikel wordt gesproken over blokkeringen in MySQL om hen te helpen identificeren en op te lossen als ze een site neerzetten, vastgelopen database-import of andere Adobe Commerce-problemen veroorzaken.
Betrokken producten en versies
- Adobe Commerce op locatie 2.2.x en 2.3.x
- Adobe Commerce op cloudinfrastructuur 2.2.x en 2.3.x
Probleem
Deadlocks in MySQL komen voor wanneer twee of meer transacties wederzijds houden en verzoeken om sloten. De aanwezige vertragingen wijzen niet altijd op een kwestie maar zijn vaak een symptoom van een andere kwestie MySQL of Adobe Commerce die is voorgekomen.
Vaak zullen de toepassing, de plaatsing, of Logboeken MySQL a "blokkering" fout of de fout "Deadlock gevonden wanneer het proberen om slot te krijgen; probeer het opnieuw beginnen transactie."
Oorzaak
Deadlocks kunnen veelvoudige oorzaken hebben, maar het gemeenschappelijkst is als u om het even welke interactie (website/processen/kanonnen banen/andere gebruikers/MySQL onderhoud/MySQL de invoer) terwijl het uitvoeren van vragen DML/DDL tezelfdertijd uitvoert.
Als voorbeeld, is het beste praktijken om een geplakt MySQL gegevensbestandinvoer te vermijden door uw plaats eerst op onderhoudswijze te zetten vermijden hebbend SQL- verzoeken aan het gegevensbestand die importeert van de importeerbaarheid en een geplakt gegevensbestand kon veroorzaken.
Oplossing
-
Controleer uw toepassing, plaatsing, of Logboeken MySQL voor vastzettingsfouten:
-
Controleer uw MySQL proceslijst voor het runnen van processen met het bevel
mysql -e 'show full processlist';
-
Controleer of MySQL-slave is ingeschakeld in Adobe Commerce op cloudinfrastructuur. Raadpleeg dit artikel: stelt variabelen (MYSQL_USE_SLAVE_CONNECTION) op.
-
Afhankelijk van de betrokken fouten, kan de oplossing zich voorstellen, of u kunt uw nuttige logboekinformatie moeten omvatten als u a Ticket van de Steunmoet openen.