Ha sok ismétlődő lekérdezése van, és az adatai nem változnak gyakran - használja a lekérdezési gyorsítótárat. Az emberek gyakran nem értik a mögöttes fogalmat query_cache_size
és állítsa ezt az értéket gigabájtra, ami valójában a teljesítmény romlását okozhatja.
Ennek oka az a tény, hogy a szálaknak le kell zárniuk a gyorsítótárat a frissítések során. Általában értéke 200-300 MB többnek kell lennie. Ha webhelye viszonylag kicsi, próbálja meg megadni a 64 millió és növekedni fog az idő.
A MySQL konfigurációs fájlban a következő beállításokat kell hozzáadnia:
query_cache_type = 1. query_cache_limit = 256K. query_cache_min_res_unit = 2k. query_cache_size = 80M.
Mindkét irányelvnek azonos méretűnek kell lennie, és segít megelőzni a lemez írását. Az tmp_table_size
a belső memória táblázatok maximális mérete. Abban az esetben, ha túllépik a szóban forgó korlátot, a táblázat a lemezen lévő MyISAM táblává alakul.
Ez befolyásolja az adatbázis teljesítményét. A rendszergazdák általában az adást javasolják 64 millió mindkét értékre a szerver minden GB RAM -ja esetén.
[mysqld] tmp_table_size = 64M. max_heap_table_size = 64M.
A lassú lekérdezések naplózása segíthet az adatbázis problémáinak meghatározásában és a hibakeresésben. Ez könnyen engedélyezhető a következő értékek hozzáadásával a MySQL konfigurációs fájljához:
slow-query-log = 1. slow-query-log-file = /var/lib/mysql/mysql-slow.log. long_query_time = 1.
Az első irányelv lehetővé teszi a lassú lekérdezések naplózását, míg a második megmondja a MySQL -nek, hogy hol kell tárolni a tényleges naplófájlt. Használat long_query_time
a MySQL lekérdezés befejezéséhez szükséges hosszú idő meghatározásához.
Az üresjárati kapcsolatok erőforrásokat fogyasztanak, és lehetőség szerint meg kell szakítani vagy frissíteni. Az ilyen kapcsolatok „alvás”Állapotot, és általában hosszú ideig így is marad. Az üresjáratú kapcsolatok kereséséhez futtassa a következő parancsot:
# mysqladmin processlist -u root -p | grep „Alvás”
Ez megmutatja a folyamatok listáját alvási állapot. Az esemény akkor jelenik meg, ha a kód állandó kapcsolatot használ az adatbázissal. PHP használatakor ez az esemény megjelenhet használat közben mysql_pconnect amely megnyitja a kapcsolatot, majd lekérdezéseket hajt végre, eltávolítja a hitelesítést és nyitva hagyja a kapcsolatot. Ennek következtében a szálonkénti pufferek a szál elhalásáig a memóriában maradnak.
Az első dolog, amit itt tennél, a kód ellenőrzése és javítása. Ha nem fér hozzá a futó kódhoz, módosíthatja a kódot wait_timeout
irányelv. Az alapértelmezett érték a 28800 másodpercig, miközben biztonságosan csökkentheti valami hasonlóra 60:
wait_timeout = 60.