Előfordulhat, hogy számos szál fut a MySQL-kiszolgálón. Ezen szálak közül a tétlen szálak hibát okozhatnak a MySQL-kiszolgálón, kivéve, ha megtekintheti a futó folyamatokat, és megölheti azokat, amelyekre jelenleg nincs szüksége.
A MySQL egy relációs DBMS, amely különféle lehetőségeket kínál a felhasználók számára a futó folyamatok felsorolására. Elmagyarázzuk, hogyan kell megjeleníteni a futó MySQL folyamatokat.
A MySQL folyamatok azonosítása
Ha van MySQL-adatbázisa a kiszolgálón, előfordulhat, hogy időnként ellenőriznie kell az állapotát, hogy ellenőrizze a terhelés mértékét. Ha késéseket vagy problémákat észlel a MySQL-adatbázis különböző lekérdezéseinél, az azt jelzi, hogy túl sok és tétlen szálak lehetnek.
Ezért hasznos megérteni, hogy mely szálak okoznak problémákat, és hogyan csökkentheti a terhelést. A MySQL segítségével különböző lehetőségeket használhat a futó folyamatok elemzésére. Két lehetőséget fogunk megvitatni, amelyek segítenek a MySQL folyamatok bemutatásában.
1. módszer: A folyamatlista megjelenítése parancson keresztül
Amikor a MySQL-t a parancssorban éri el, a SHOW PROCESSLIST paranccsal megjelenítheti a MySQL-kiszolgálón futó folyamatokkal kapcsolatos információkat. Amikor végrehajtja, pillanatképet ad a szervernek a különféle kapcsolatokról és azok információiról, például az állapotról, az időről stb.
A végrehajtandó parancs a következő:
FOLYAMATLISTA MUTATÁSA;Jegyezze fel a kimenet különböző oszlopait. Beszéljünk röviden mindegyikről:
- Id – Megjeleníti a futó folyamat folyamatazonosítóját. Számos futó folyamat esetén mindegyik egyedi azonosítóval rendelkezik.
- Felhasználó – Az adott szálhoz társított felhasználót jelöli.
- Házigazda – Megmutatja azt a gazdagépet, ahol az adott kliens csatlakozik. A nyilatkozatot kiadó konkrét ügyfél gazdagépneve.
- DB – Ha egy adott szálhoz adatbázis van kiválasztva, az megjelenik a DB oszlopban. Ha NULL értéket mutat, nincs adatbázis kiválasztva.
- Parancs – A szál által végrehajtott parancsot mutatja.
- Idő – Az adott szál esetében ez az oszlop jelzi, hogy mennyi ideig van a szál jelenlegi állapotában.
- Állapot – Megmutatja, milyen állapotban vagy eseményben van a szál.
- Info – Megmutatja, hogy a szál éppen milyen utasítást hajt végre.
Ebben az esetben az előző kimenet az az eredmény, amelyet a SHOW PROCESSLIST parancsunkból kapunk. Az eredmény táblázatos formában jelenik meg. Tegyük fel, hogy ugyanazokat az eredményeket szeretné megtekinteni, de függőlegesen. Ehelyett használhatja a következő parancsot:
FOLYAMATLISTA MUTATÁSA\G;Opcionálisan adja meg a [FULL] értéket a parancsban, hogy ne maradjon le egyetlen futó folyamatról sem.
2. módszer: Az INFORMATION_SCHEMA.PROCESSLIST opción keresztül
A MySQL rendelkezik az INFORMATION_SCHEMA.PROCESSLIST táblával, amely tartalmazza a szerveréhez tartó összes aktív kapcsolat listáját. Ennek a táblázatnak a megnyitásával megkapja az összes aktív kapcsolat részleteit, hogy megismerje a gazdagépüket, folyamatazonosítójukat, állapotukat, parancsukat stb., amelyek hasonlóak a SHOW PROCESSLIST paranccsal kapotthoz.
Íme a végrehajtandó parancs:
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;A parancs végrehajtása után az alábbihoz hasonló kimenetet kap, amely a MySQL futó folyamatainak minden részletét mutatja:
Hogyan lehet megölni a MySQL futó folyamatait
Tegyük fel, hogy probléma van a futó folyamatokkal. A kiszolgáló betöltési idejének csökkentése és a hatékonyság növelése érdekében minden tétlen folyamatot leállíthat. Az első feladat az adott szál azonosítójának azonosítása. Két módszert adtunk meg bármely szál azonosítójának megkeresésére.
Miután megvan az azonosító, végrehajthatja a „kill” parancsot a következő szintaxissal:
KILLA parancs végrehajtása után sikeres kimenetet kap, amely az érintett sort mutatja, és a lekérdezés megszakad a szervertől. Így lehet megölni egy MySQL-folyamatot.
Következtetés
A MySQL két módot kínál a futó folyamatok megjelenítésére. Megbeszéltük mindkét lehetőséget, a megadott szintaxist és egy példaparancsot, hogy segítsünk megérteni a MySQL SHOW PROCESSLIST-t. Ennek ellenére láttuk, hogyan lehet megölni egy futó folyamatot. Remélhetőleg most már megérti, hogyan működik a MySQL SHOW PROCESSLIST.