MySQL optimalizálás – 3. rész

Ahogy az előző cikkben ígértem, megnézzük milyen hasznos információkat tud szolgáltatni számunkra a tunning-primer.sh mysql optimalizáló script.

Menjünk végig kisebb részenként a rengeteg információn.

Az elején egy általános statisztikát add nekünk, hogy milyen MySQL verziónk van, az mennyi ideje fut, az összes lekérések számát illetve az aktuálisan futó szálakat is megmondja.

Majd a lassú sql kérésekről add információt, hogy minden rendben van-e, ha esetleg nincs akkor javaslatot is tesz a javításukra.

A következő pont a bináris log.
Ellenőrzi, hogy használjuk-e vagy sem. Ha engedélyezzük akkor a bináris log segítségével lépésről-lépésre való vissza állítást tesz lehetővé a mysql szerver.

Következő résznél a szálakról kapunk információt.

thread_cache_size: mekkora a szál gyorsító tárunk
thread_cached: hány szálunk van a gyorsító tárban

Majd a kapcsolatok számáról kaphatunk bővebb információt:

Megtudhatjuk, hogy egyszerre hány kapcsolatot tud fogadni a mysql szerverünk, abból mennyit használunk jelenleg, mennyi volt a maximális kihasználtság az indítása óta és ez hány %-os kihasználtságot jelent. Ha túl kevés szabad kapcsolatunk lenne, akkor itt kapni fogunk egy figyelmeztetetést, hogy állítsuk magasabbra a maximális kapcsolatok számát.

Ezek után az InnoDB tároló motor paramétereiről kapunk információt, ha használjuk ezt a motort akkor ez a rész is fontos lesz számunkra.

Következő résznél a memória használatról kapunk képet.
Itt amire érdemes figyelnünk az a Configured Max Memory Limit, az itt látható értéket foglalhatja le a MySQL szerver maximálisan.

Key buffer résznél, az kulcsok gyorsító tár kihasználtságáról kapunk információt.
Ügyeljünk arra, hogy mindig legyen szabad kapacitás, már ha a memóriánk mérete engedi.

Következő rész a Query Cache, amely a lekérések gyorsító tárának állapotáról árulkodik.

Itt is fontos, ha módunk van rá legyen szabad kapacitása. (Query cache Memory fill ratio legyen 90% alatt).

Majd a Sort Operations rész következik, ahol a rendezéshez szükséges gyorsító tárról kapunk információkat.

Ezt követi a JOINS rész, ahol, ahogy a neve is mutatja a joinolt lekérdezésekhez használt gyorsító tárról kapunk információkat.

Az Open Files Limit résznél, meg tudhatjuk, hogy maximálisan hány fájlt nyithat meg egyszerre a mysql szerverünk. Ez a beállítás a tábla gyorsító tárazás miatt fontos. Ezt majd a következő résznél látjuk, viszont fontos hogy a megnyitható fájlok száma mindig több legyen mint a tábla cache, az ajánlás szerint akár 2-3-szor is.

A Table Cache résznél a tábla gyorsító tárról kapunk információkat, azaz az épp használatban lévő megnyitott táblákat is gyorsító tárazzuk a gyorsabb elérés érdekében.
Fontos hogy a table_open_cache legyen több mint az open tables, azaz a gyorsító tár legyen nagyobb a megnyitott táblák számánál, hogy mind beleférjen. Illetve ahogy említettem az open_files_limit pedig legyen több a table_open_cache –nél, különben hibás működés fog fellépni a mysql szerverünknél.

A következő rész a Temp Tables, azaz az ideiglenes táblák.
Ezeket is érdemes a memóriában tárolnunk a lemez helyett, viszont a BLOB és a TEXT mezőket a nem fix méret miatt kénytelen a lemezen tárolni. Így mindig lesz olyan temp tábla ami a lemezen fog tárolódni, de ezeket próbáljuk minimálisan tartani, a temp table cache emelésével.

Még egy fontos rész a Table Locking, azaz a tábla zárolások.
Ha egy táblát több szál próbálja meg elérni írásra egy időben, abból zárolási probléma adódik, azaz az egyik szálnak várakoznia kell, amíg a másik be nem fejezi a tevékenységét.
A MyIsam adatbázis motor táblánkénti zárolást végez, míg az InnoDB pedig soronkéntit, azért ha túl sok zárolási problémánk lenne, akkor érdemes megpróbálni átállni InnoDB-re.

A következő részben megnézzük, hogy tudjuk elvégezni a scriptek által javasolt beállításokat.

Hozzászólás beküldése

| Download Free Ringtones for Verizon Online. | Thanks to Highest CD Rates, Ally Bank Rates and Binaural & Isochronic Beats