Inzicht in de verwerking van verbindingen

Voltooid

MySQL ondersteunt twee algemene categorieën verbindingen:

  • Korte levensduur : een verbinding die gedurende een korte periode is geopend om een eenvoudige query uit te voeren. De architectuur van MySQL is ontworpen voor dit type workload, die maximaal 80 duizend verbindingen verwerkt en de verbinding wordt verbroken per seconde.
  • Lange levensduur : een verbinding die voor onbepaalde tijd open is, zoals een webserver of toepassingsserver. In dit scenario maakt de client een verbinding met een MySQL-server en wordt de verbinding vervolgens pas verbroken nadat de clientserver is gestopt, waardoor de verbinding weken of maanden wordt bewaard.

De serverparameter max_connections definieert het maximum aantal toegestane clientverbindingen. Zodra dit maximum is bereikt, staan MySQL geen nieuwe verbindingen toe totdat een actieve verbinding is verbroken.

Verbinding maken ion pooling en permanente verbindingen

De manier waarop een toepassing databaseverbindingen beheert, kan een aanzienlijke invloed hebben op de algehele prestaties van een database. U moet erop gericht zijn het volgende te verminderen:

  • Het aantal keren dat verbindingen tot stand zijn gebracht.
  • De tijd voor het tot stand brengen van verbindingen in sleutelcodepaden.

Voor de beste resultaten kunt u overwegen om verbindingspooling of permanente verbindingen te gebruiken om verbinding te maken met Azure Database for MySQL-servers.

Verbinding maken ion-pooling wordt gebruikt voor het maken, beheren en toewijzen van databaseverbindingen. Wanneer een databaseverbinding wordt aangevraagd, wordt prioriteit gegeven aan de toewijzing van bestaande niet-actieve databaseverbindingen, in plaats van een nieuwe verbinding te maken. Nadat de verbinding is voltooid, wordt deze hersteld, zodat deze opnieuw kan worden gebruikt in plaats van te worden gesloten. Zie Java-voorbeelden om groepsgewijze verbindingen te illustreren | Microsoft Docs.

Permanente verbindingen zijn vergelijkbaar met die van groepsgewijze verbindingen. Permanente verbindingen vervangen verbindingen met korte levensduur die doorgaans binnen < 5-10 milliseconden worden uitgevoerd door langdurige verbindingen. Deze wijziging vereist vaak slechts kleine wijzigingen in uw code, maar kan belangrijke prestatieverbeteringen aanbrengen voor typische toepassingsscenario's. Deze aanpak voorkomt dat er een nieuwe verbindingsthread wordt gemaakt voor elke nieuwe query, waardoor de prestaties worden verbeterd.

opgeslagen procedures voor Verbinding maken ion

Met Azure Database for MySQL kunnen veel parameters worden bekeken en gewijzigd in Azure Portal door te navigeren naar de server en de blade Serverparameters (of met behulp van Azure CLI). Er zijn echter twee beheertaken waarvoor extra bevoegdheden nodig zijn, moeten worden uitgevoerd met behulp van opgeslagen procedures. De volgende stappen moeten worden uitgevoerd:

  • mysql.az_kill - gelijk aan de KILL CONNECTION-instructie. Neemt de processlist_id als invoerparameter. Hiermee wordt de verbinding beëindigd nadat een instructie is beëindigd die door de verbinding wordt uitgevoerd.
  • mysql.az_kill_query : gelijk aan de KILL QUERY-instructie. Neemt de processlist_id als invoerparameter. Hiermee wordt alleen de instructie beëindigd die door de verbinding wordt uitgevoerd en wordt de verbinding niet beëindigd.

Voor deze opgeslagen procedures zijn SUPER USER-bevoegdheden vereist.

efficiëntie van Verbinding maken

Voor de beste prestaties moet u doorgaans proxy-oplossingen voor ProxySQL of Heimdall Data Proxy gebruiken voor MySQL. Zie Verbinding maken ion Efficiency voor meer informatie over verbindingsefficiëntie.