2012. július 5., csütörtök


Hogyan készíts weboldalt?
A weboldal készítés manapság igen népszerű szakma, naponta tonnányi weboldal készül, illetve tucatnyi álláshirdetés jelenik meg. Éppen ezért ebben a  sorozatban azt nézzük meg, hogyan készülnek a weboldalak, mi az amit tudnod kell, ha weboldalakat szeretnél készíteni. Vagyis ez a sorozat szól azoknak is, akik még teljesen kezdők a weblapok készítésében, de ezzel szeretnének foglalkozni, illetve azoknak is, akiknek már némi sejtésük van erről, de szeretnék elkerülni a tipikus hibákat.A sorozat minden részénél találsz majd oktató anyagot is, amelyekkel el tudod kezdeni a tanulást, vagy a meglévő tudásod tökéletesítheted.A weboldalak készítése több lépcsős folyamata weboldal céljának tisztázása, specifikációk elkészítése. A specifikációban rögzítjük hogyan nézzen ki, hogyan működjön az adott weboldal. weboldal kinézetének (design-jának) elkészítése, ami a webdesigner dolga. A weboldal design-ok készítésének tökéletes eszköze a Photoshop, tehát a Photoshop magabiztos használata elengedhetetlen a weboldal kliens oldali kódolása, (X)HTML és CSS segítségével, ami a sitebuilder feladata. Ebben a fázisban az a kód készül el, amit a böngésző képes megjeleníteni, tehát az, amit lényegében weboldalnak nevezünk. Ehhez először a HTML-t majd a CSS-t célszerű elsajátítani szükség esetén szerver oldali programozás, ami a programozó dolga. Ez lehet PHP, ASP, vagy egyéb szerver oldali programozási nyelv. Ez a kód a szervereken (ahol a kész weboldal tárolódik) hajtódik végre. Szerver oldali programozásra akkor lehet szükség, ha pl. szeretnénk regisztrációt az oldalunkra, vagy fórumot, webshopot, dinamikus tartalmat, stb.
szükséges esetben keresőoptimalizálás (SEO), marketing (ezek folyamatos munkát jelentenek gyakorlatilag)A weboldal design-ok készítésével, megnézzük milyen eszközöket, programokat lehet felhasználni a weboldal design-ok hatékonyabb készítéséhez,  milyen alapelveket érdemes betartani, mire érdemes odafigyelni.
Mivel?
Az első és legfontosabb gondolat, ami felmerülhet, amikor weboldal design-okat készítünk, az, hogy mivel készítsük, milyen programmal? Számos grafikai program létezik, ami alkalmas lehet erre:
  • Adobe Fireworks ,Adobe Photoshop ,GIMP
  • CorelDRAW stb.
Viszont ha jót akarsz magadnak, akkor a Photoshop-ot használod, persze biztosan van aki másképp látja.
Miért a Photoshop?
A rétegeket nem hozom fel indoknak, hiszen azt minden kicsit is jobb grafikai program tudja, de van valami amit szerintem a Photoshop tud  a legjobban, az pedig a réteg stílusok (Layer Style). A réteg stílusokkal állíthatsz be színátmenetet, árnyékot, körvonalat és még rengeteg más egyebet. Ráadásul mindezt úgy teheted meg, hogy előnézetet is mutat róla a Photoshop, sőt, később ezek módosíthatóak is könnyedén. Nyilván például színátmenetet használhatsz sok más programban is, de mi van akkor, ha később módosítani szeretnéd? Kijelölöd újra, beállítod megint a színátmenetet és módosítasz rajta kicsit? Nem lenne egyszerűbb, ha csak megnyitnád az adott réteghez tartozó stílusokat és pár klikkel átállítanád?
Persze ez csak egy része a “miért Photoshop” felsorolásnak, igazából ha használod egy ideig majd mással próbálkozol, azonnal észreveheted, hogy miért a Photoshop a legjobb weboldal design-ok készítésére.  De GIMP is jó úton halad egyébként, a roadmap szerint a 2.8-as verzióban végre egyetlen ablak lesz, nem 4564563 Leírás: :), illetve megjelennek a réteg csoportok. Ami viszont ennél fontosabb, hogy a 3.2-es verzióban ígérik a réteg effekteket (“bevel/emboss, draw line at edges, etc”), illetve egy későbbi verzióban a “Smart Objects” is szerepel a tervek szerint (a Phohotshop-ban ez már megtalálható egy ideje).
Szóval egyelőre maradjunk a Photoshop-nál, bár igazából amiről írni szeretnék, az csak kisebb részben kötődik egyetlen grafikai programhoz, inkább általános tanácsok, de kitérek a Photoshop-ra is.
Egyetlen kérdést kellene még tisztázni, azt, hogy angol vagy magyar nyelvű Photoshop-ot érdemes használni? Sokan rögtön a magyar nyelvű mellett döntenek, ám véleményem szerint nem feltétlen teszik jól. Azért gondolom, hogy az angol nyelvű a jobb, mert ha azt megtanulod használni, akkor onnantól kezdve minden angol nyelvű leírást, tutorialt megértesz majd, még ha magát az egész szöveget nem is érted, de követni tudod. Márpedig angol nyelven sokkal több anyag van a Photoshop-hoz, mint magyar nyelven.
Tehát akkor végre van egy programunk, amivel weboldal design-okat tudunk készíteni.
Az első lépések
Amikor egy weboldal designt készítesz, akkor fontos eldönteni már az elején, hogy mekkora legyen, milyen széles. Persze utólag is lehet a szélességet módosítani, ám ez gyakran nem kis munka, főleg egy összetett design esetén, így lehetőleg már az elején célszerű eldönteni. Igazából erre szabvány nincs, egy weboldal szélessége tetszőleges lehet. Ám ez így nem teljesen igaz, ugyanis van egy maximális szélesség, aminél nagyobbra nem érdemes méretezni a weboldalakat. Ez jelenleg 990 pixel. Miért ennyi? Nézzük meg kicsit a manapság elterjedt felbontásokat:
Láthatod, hogy 1024 x 768-as felbontást még mindig sokan használnak, 20%-ot nem lehet figyelmen kívül hagyni (a látogatók ötöde). Az 1024 azért érdekes, mert ezen a felbontáson a 990 pixel széles weboldal, plusz a jobb oldali görgetősáv még éppen elfér, anélkül, hogy alul is görgetősáv jelenjen meg. Tehát ha 990 pixelnél szélesebb, akkor a weboldal egy része nem fér ki ezen a felbontáson, ami megengedhetetlen.
De ettől függetlenül sem érdemes túlméretezni a weboldalakat, főleg azokat, amelyek csak egyetlen vagy két oszlopból állnak, különösen, ha sok a szöveges tartalom, mert a nagyon hosszú sorok nehezen olvashatóak. Ezért kell azt is megfontolni, hogy érdemes-e a felbontáshoz alkalmazkodó weboldalt készíteni, tehát olyat, ami ha a felbontás 1024, akkor 1024 széles, ha a felbontás 1920, akkor 1920 széles.
Ha megvan a felbontás, akkor célszerű a segédvonalakat használni, ez a Photoshop-ban “guide” néven található (View > New Guide). Tehát például letehetsz egyet  függőlegesen 100 pixelnél és (990-nél maradva) 1090 pixelnél. Így a közte lévő rész 990 pixel széles lesz, ebben a részben kell maradnod. Fontos, hogy ebben a részben legyen minden, tehát ha van árnyéka a weboldalnak, akkor az is.
Negnézzük milyen fontos szempontokat érdemes figyelembe venni a weboldalak készítésénél, milyen tipikus hibákat kell elkerülni, hogy a weboldalunk jól használható legyen.
Az első és egyik legfontosabb szempont a szövegek olvashatósága, hiszen egy rosszul olvasható weboldallal biztos, hogy nem fognak a látogatók kínlódni.
Nézzük először felsorolva, hogy mire érdemes ügyelni:
  • betűtípus
  • betűméret
  • betűszín
  • szöveg mögötti háttér, kontraszt
  • szöveg tagolása
  • szöveg igazítása
  • sorok szélessége
Betűtípus

A számítógépeden rengeteg betűtípust találsz, amelyeket használhatsz egy weboldal elkészítése során, azonban a legtöbb esetben nem érdemes egy különlegesebb betűtípust használni, mert a monitoron való olvashatóságát rontja a szövegnek. Sokan úgy gondolják (illetve kutatások szerint is), hogy kerülni kell például a talpas betűtípusok használatát, mert a monitoron nehezen olvasható. Ilyen például a Times New Roman. Helyette az olyan talp nélküli betűket kell használni, mint például az Arial. De ha megnézed, akkor láthatod, hogy az operációs rendszered, vagy például az mp4 lejátszód, vagy telefonod is talp nélküli betűket használ alapértelmezésben.
Ez mellett arra is ügyelned kell, hogy olyan betűtípust használj, ami széles körben is elterjedt, hiszen betűtípusokat utólag is telepíthetsz a gépedre, ám közel sem biztos, hogy az a weboldal látogatóinál is telepítve van. Vannak persze módszerek ennek a megoldására is, ám jelenleg még a legjobb megoldás, ha széles körben elterjedt betűtípust használsz, például az Arialt.
A weboldal egyes részein természetesen használhatsz más betűtípusokat is, képként beillesztve.

Betűméret
A betűméretről túl sokat nem lehet beszélni, legyen könnyen olvasható, a túl apró betűk gondot okozhatnak.  A fenti dobozban lévő szövegnél a betűméret már elfogadható, annál sokkal kisebbet csak erősen indokolt esetben szabad használni. De ugyanígy nem jó az sem, ha túl nagy betűket használunk, mert az is rontja az olvashatóságot, vagy ha csupa nagybetűket. Természetesen indokolt esetben helyenként alkalmazhatsz kisebb és nagyobb betűket is, de általában nem túl jó, ha nagyobb mennyiségű nem megfelelő méretű szöveg van egy weboldalon.
Betűszín
A betűszín szintén az olvashatóság miatt fontos, a túl halvány betűket nehezebb elolvasni. Persze van amikor jobban néz ki, ha halványabbak a betűk, de gondolni kell a látogatókra is, fontosabb, hogy nekik jól használható legyen az oldal, mint az, hogy mennyire illeszkednek a design-ba a kicsit sötétebb betűk.
Szöveg mögötti háttér, kontraszt
Ha a betűtípus, méret és szín is rendben van, még akkor is van valami, amivel az egészet el lehet rontani, ez pedig a szöveg és a mögötte lévő háttér rossz kontrasztja. Vagyis a halvány háttéren halvány betűk, vagy éppen a sötét háttéren sötét betűk. Lehet, hogy jól néznek ki, de az olvashatóságot jelentősen rontják, így ezek elkerülendőek.
Nézzünk néhány rossz példát:
Sötét alapon sötét szöveg
Halvány szöveg
Háttérképen szöveg
Szöveg tagolása
A szövegek tagolása, bekezdésekre osztása fontos, hiszen egyrészt egy összefüggő szöveg massza riasztó lehet, ha azt szeretnénk hogy elolvassa valaki, illetve úgy általában weben kényelmetlen elolvasni egy hosszú, “véget nem érő” szöveget. Tehát célszerű széttagolni.
Ez így nem a legjobb
Ez így már sokkal jobb, átláthatóbb

Szöveg igazítása
A weboldalakon a szöveg gyakran balra igazított, vagy sorkizárt, bár a sorkizárt esetében megoszlanak a vélemények, hogy érdemes-e használni, vagy sem, mert vannak vele problémák, néha nagyon széthúzottá válnak a szövegek egyes sorai. Jobbra igazított szöveg időnként szükséges lehet, viszont a középre igazított csak speciális esetekben alkalmazandó leginkább, hosszabb összefüggő szövegek esetében igen zavaró tud lenni.
A közepre igazított szöveg nem a legjobb választás

Sorok szélessége
Elsőre talán nem is tűnhet problémának, ám a nagyon hosszú sorokat olvasni meglehetősen kényelmetlen. Jellemzően nem nagyon van “szabvány” a sor hosszúságra, de érdemes tartózkodni a nagyon hosszú soroktól. Ez a cikk amit most olvasol még kényelmesen olvasható, de ennek a 1.5x-ese szerintem már túl hosszú lenne, nehezen olvasható, de nézd meg, kattints az alábbi képre.


MySQL optimalizálás webmestereknek!



A MySQL adatbázis teljesítmény optimalizálása:.
A teljesítménynövekedést kiszolgáló oldalon leginkább a gyorsító tárak növelésével tudjuk elérni, ezért fontos, hogy legyen elegendő szabad memóriánk a gépünkben.
Az optimális beállítások megtalálásához igen hasznosak a MySQL optimalizálást segítő scriptek, ezek közül én hármat használok, a három együttes eredményére alapozva állítom be a megfelelő paramétereket a mysql szerver konfigurációjában.
Akkor nézzük is meg az első ilyen scriptet, amely a mysqltunner.pl névre hallgat.
Először is le kell töltenünk a gépünkre:
Majd adjunk rá futtatási jogot:
 chmod 770 mysqltunner.pl 
Most már le tudjuk futatni az optimalizáló scriptet:
 ./mysqltunner.pl 
Ekkor megfogja tőlünk kérdezni a MySQL szerver eléréséhez szükséges felhasználónevet és jelszót.
Itt a root felhasználót adjuk meg és a hozzá tartozó jelszót.
Please enter your MySQL administrative login: root
Please enter your MySQL administrative password:
Ha megadtuk a hozzáférési adatokat, akkor lefut a script és az ábrán látható kimenethez hasonló eredményt fog adni.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/06/mysqltunner_small-300x117.jpg
Az script kimenete 5 részre osztható fel, melyek az alábbiak:
  • General Statistics: Általános statisztika a mysql szerverről
  • Storage Engine Statistics: Statisztika a adatbázis tároló motorokról
  • Security Recommendations: Biztonsági ajánlások
  • Performance Metrics: Teljesítmény adatok, ez lesz számunkra az egyik fontos rész
  • Recommendations: Ajánlások a beállítások módosítására, ez a másik fontos rész számunkra
Még mielőtt elkezdenénk soronként ki elemezni a script eredményét, fontos megjegyeznem, hogy a script futtatásai között a MySQL szervert ajánlott 1-2 napig "járatni".
Nos akkor nézzük meg a script milyen információkat is ad nekünk.
General Statistics rész:
[--] Skipped version check for MySQLTuner script:
Kihagyja a scriptünk verzió ellenőrzését, ez nekünk jelenleg lényegtelen
[OK] Currently running supported MySQL version 5.1.41-3ubuntu12.10
Megmutatja milyen MySQL verziót futtat a gépünk.
[OK] Operating on 64-bit architecture
Az operációs rendszerünk 64 bites, ez azért fontos, hogy kezelni tudja a 4GB-nál több memóriát, amire szükségünk lehet ha gyorsítani szeretnél az SQL szerverünket.
Storage Engine Statistics rész:
[--] Status: +Archive -BDB -Federated +InnoDB -ISAM -NDBCluster
Megmutatja, hogy melyik tároló motor van engedélyezve a szerveren. A + -al jelöltek engedélyezve vannak a mínusz jellel jelöltek pedig nem.
[--] Data in MyISAM tables: 194M (Tables: 1555)
[--] Data in InnoDB tables: 160M (Tables: 367)E két sor statisztikát ad tároló motoronként, hogy mennyi adatot tárol az adatbázisba, illetve azt hány táblában.
Security Recommendations rész:
[OK] All database users have passwords assigned
Megmutatja, hogy az összes adatbázis felhasználónak van e jelszava
Performance Metrics rész:
[--] Up for: 17d 20h 24m 54s (37M q [24.323 qps], 1M conn, TX: 101B, RX: 6B)
[--] Reads / Writes: 77% / 23%
E két sor általános statisztikát ad pl. a szerver uptime-ról, írások olvasások megoszlásáról.
[--] Total buffers: 898.0M global + 4.6M per thread (100 max threads)
Memória használatról ad információt ez a sor, 898 MB-ot használ globálisan a mysql szerver, és erre még rá jön szálanként 4.6 MB memória használat. Így a szerver maximum kihasználtság esetén 898 MB + 100 x 4.6 MB- ot használhat, amit a következő sorban látunk is kiszámolva:
[OK] Maximum possible memory usage: 1.3G (16% of installed RAM)
[OK] Slow queries: 3% (1M/37M)
Ez a bejegyzés megmutatja, hogy a lekérdezések hány % lassú lekérdezés, amelyeknek egy a konfigurációban megadott időnél tovább tart a futása. Ezt ajánlott minél kisebb értéken tartani, illetve bekapcsolni az ilyen lassú kérések naplózását. Majd a naplózót lekérdezéseket optimalizálni.
[OK] Highest usage of available connections: 20% (20/100)
Ebben a sorban láthatjuk, hogy a maximális kapcsolatok számát hány % ban használtuk ki a legmagasabb kihasználtságkor. Figyeljünk, hogy mindig maradjon tartalék kapcsolat.
[OK] Key buffer size / total MyISAM indexes: 128.0M/44.4M
A kulcsok gyorsítótárának a méretét mutatja, illetve annak a kihasználtságát az összes index/kulcshoz viszonyítva. Jelenleg 44.4MB-ot használ a 128MB gyorsítótárból. Memória mennyiségünktől függően állítsuk be, minél magasabb Key buffer hit rate-ot próbáljunk meg elérni.
[OK] Key buffer hit rate: 99.9% (6M cached / 3K reads)
A kulcs gyorsítótárnak a találati arányát mutatja, azaz az összes kulcsnak hány % -át tudja a gyors cache (gyorsítótár)-ből olvasni.
[OK] Query cache efficiency: 81.4% (23M cached / 28M selects)
Lekérdezés gyorsítótár hatásfokát láthatjuk, érdemes minél magasabban tartani, pl. a query cache növelésével, vagy a gyorsítótár töredezettségének megszüntetésével.
[OK] Query cache prunes per day: 0
Itt azt tudjuk meg, hogy hány adatot/lekérdezést kellet eldobnunk a query cache-ből, mert nem fértek el benne, azaz megtelt vagy töredezett a cache. Legjobb, ha ez a szám 0.
[OK] Temporary tables created on disk: 24% (48 on disk / 200 total)
Azt mutatja, hogy az ideiglenes táblák, hány százalékát készíti a lemezre, ezt érdemes alacsonyan tartani, mert jobb ha a memóriában készíti el ezeket és onnan olvassa, jelentősen gyorsabban.
Viszont a String és Blob mezőket tartalmazó táblákat csak a lemezen tudja tárolni, úgy hogy ha sok ilyen táblát használunk akkor ez a % viszonylag magasan fog maradni.
[OK] Thread cache hit rate: 96% (2 created / 63 connections)
Szálankénti gyorsítótár találati aránya. Próbáljuk meg magasan tartani.
[OK] Table cache hit rate: 24% (47 open / 195 opened)
Tábla cache találati aránya, ha túl kevés, akkor emelhetjük a tábla gyorsítótárat, viszont arra ügyelnünk kell, hogy ekkor általában emelnünk kell a mysql szerver által használható fájlok számát is.
Ennek a kihasználtságát mutatja a következő sor:
[OK] Open file limit used: 9% (94/1K)
[OK] Table locks acquired immediately: 100% (66 immediate / 66 locks)
Majd az utolsó sor ebben a részben a táblazárolásokat mutatja.
Recommendations rész:
A script ajánlatokat tesz a MySQL szerver konfigurációjának a változtatására, amikkel növelhető a teljesítménye. Ez is két részből áll, egy általános részből, illetve egy ténylegesen az adott konfigurációs változó értékének a beállítására vonatkozó javaslat.
pl. egy javaslat az optimalizálásra:
Variables to adjust:
query_cache_size (> 128M)
join_buffer_size (> 2.0M, or always use indexes with joins)
Ami azt javasolja hogy emeljük meg a lekérdezések gyorsítótárát 128MB fölé, illetve szintén emeljük a join-oknál használt gyorsítótárat, vagy mindig használjunk indexeket.
Ebben a cikkben ennyit akartam bemutatni, a következő cikkben megnézzünk még egy optimalizáló scriptet, illetve lehet kitérek, hogy hogyan is lehet ezeket a javasolt módosításokat elvégezni a MySQL szerver alatt.
A következő script a tuning-primer.sh névre hallgat.
Weboldal ahonnan beszerezhető: https://launchpad.net/mysql-tuning-primer
Kezdésként töltsük le a gépünkre a tuning-primer-t:
Majd adjunk rá futtatási jogot:
chmod 770 tuning-primer.sh 
Majd futassuk le a scriptet:
 ./tuning-primer.sh 
A másik scripthez hasonlóan, itt is meg kell adnunk az elején a mysql kapcsolódáshoz szükséges adatokat, ezeket megpróbálja automatikusan megtalálni, ha nem sikerül neki, akkor a következőhöz hasonló képet fogunk kapni, illetve néhány kérdést.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/07/mysqltunner.jpg
A   Would you like to provide a different socket?: [y/N] kérdésre válaszoljunk N-el.
Majd a következő kérdésre Y-al:
Do you have your login handy ? [y/N]:
Ezek után meg kell adnunk a mySQL kapcsolódáshoz szükséges felhasználó nevet és jelszót.
Javasolt a root felhasználót megadni, hogy a script hozzá férjen a rendszer paraméterekhez is.

Majd ha az ezt követő kérdésre igennel válaszolunk, akkor ezeket az adatokat elmenti egy helyi my.cnf fájlba, így legközelebb már nem kérdezi meg őket:
Would you like me to create a ~/.my.cnf file for you? [y/N] : Y
Ha sikerült megfelelően beállítanunk a kapcsolatot a mySQL szerverrel akkor lefut a script elég sok eredményt adva.
Nézzük csak 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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner1.jpg
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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner2.jpg
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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner3.jpg
Következő résznél a szálakról kapunk információt.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner4.jpg
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:
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner5.jpg
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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner6.jpg
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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner7.jpg
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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner8.jpg
Következő rész a Query Cache, amely a lekérések gyorsító tárának állapotáról árulkodik.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner9.jpg
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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner10.jpg
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.
Leírás: http://blog.mtommy.info/wp-content/uploads/2011/10/tunner111.jpg
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 beállításokat a MySQL szerver konfigurációs állományában tudjuk megtenni, ami a my.cnf névre hallgat. Ez Debian/Ubuntu operációs rendszeren az /etc/mysql könyvtár alatt található.
Nyissuk meg ezt az állományt:
nano /etc/mysql/my.cnf
Kezdjük a sort a lassú kérések naplózásának bekapcsolásával:
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time = 10
log-queries-not-using-indexes
Nézzük mit jelenteken a fenti sorok:
log_slow_queries: Ezzel kapcsoljuk be a naplózást, illetve megadjuk, hogy az hova történjen
long_query_time: Példánkban a 10 másodpercnél tovább futó sql lekérdezések számítsanak lassúnak
log_queries-not-using-indexes: Azokat a lekérdezéseket is naplózzuk, melyek nem használnak indexeket.
Bináris naplózás (Binary log):
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
expire_logs_days = 10
max_binlog_size = 100M
server-id: Adunk a gépünknek egy azonosított, ez replikációnál lehet fontos, ahol nem lehet két egyforma nevű gép
log_bin: bináris naplózás bekapcsolása és a napló megadása
expire_logs_days : Hány napig őrizze meg a naplót
max_binlog_size: Mekkora lehet a napló maximális mérete
Szálak gyorsító tára (Thread Cache):
thread_cache_size  = 8
thread_stack = 192K
thread_cache_size: Szál gyorsító tár mérete
thread_stack: Egy adott szálhoz tartozó memória mérete
Maximális kapcsolatok (Max Connections):
max_connections=100
wait_timeout=100
max_connections: Egyidejűleg ennyi kapcsolatod tud fogadni az sql szerver
wait_timeout: Ennyi idő után elbontja a kapcsolatot, és felszabadítja az erőforrásokat
Kulcs gyorsítótár (Key Buffer):
key_buffer_size=128M
key_buffer_size: A kulcs gyorsítótár méretét tudjuk megadni

Lekérdezés gyorsítótár (Query Cache):
query-cache-type  = 1
query_cache_size  = 256M
query_cache_min_res  = 1K
query_cache_limit = 24M
query-cache-type: A gyorsítótárazás bekapcsolása
query_cache_size: A gyorsítótár mérete
query_cache_min_res: A minimális foglalási egység, ha ennél kisebb a lekérdezés eredménye akkor is ekkora helyet fog lefoglalni neki a memóriában.
query_cache_limit: Az ennél nagyobb méretű eredményt adó lekérdezések nem lesznek gyorsító tárazva.
Join gyorsítótár (Join Buffer):
join_buffer_size = 2M
Joint tartalmazó lekérdezések gyorsítótár mérete, ezt ajánlott 2M vagy alatta tartani.
Megnyitott fájlok:
open_files_limit = 32768
Ennyi fájlt nyithat meg maximálisan a mysql szerver, fontos hogy nagyobb legyen a table_cache –nél. Viszont figyelni kell, hogy az operációs rendszer által megnyitható fájlok számánál viszont kevesebb.
Tábla gyorsítótár (Table Cache):
table_cache = 16384
table_definition_cache = 2048
table_cache: Tábla gyorsítótár mérete, ennyi tábla kerülhet a cache –be
table_definition_cache: Tábla definíció gyorsítótár mérete
Ideiglenes tába gyorsítótár (Temp Table):
tmp_table_size          = 256M
Az ideiglenes tábla gyorsítótár mérete.
Ezek lennének a főbb beállítások. A helyes beállításokat sok tesztelés után lehet elérni, de utána is folyamatosan ellenőrizni kell őket. Ha változik az adatbázis terhelés, új adatbázisok kerülnek be a rendszerbe, akkor szinte biztos, hogy hozzá kell majd nyúlnunk ezekhez a beállításokhoz.