Szükségem töredezettségmentesítéséhez mysql adatbázis
Az a tény, hogy a táblázatot, amelyet az igények a motor, az adatok folyamatosan változnak. Egy asztal, ha nincs optimalizálva, fog futni egy kicsit lassabb. Ha van egy kis weboldal, akkor talán nem vette észre a különbséget. És ha egy nagy teher? Egyszer szembe azzal a ténnyel, hogy a kliensek probléma van az oldalon túl provayderom- betöltve a MySQL. Kiderült, hogy a kimenő egyik oldalon (ez egy internetes áruház OS Commerce), hoztunk létre több mint 120 kérelmet. Bizonyos esetekben még több mint 200 tonna. És mivel a látogató volt egy csomó (megy, ezer), az adatbázis nem tudott megbirkózni. Erre azért volt szükség, hogy optimalizálja a kódot, de nem volt könnyű.
Ebből arra lehet következtetni, hogy meg kell töredezettségmentesítéséhez asztalra (mint a PHP-kódot, természetesen :)).
Most, hogy mely táblákat optimalizálni. Az első, hogy milyen típusú legyen MyISAM vagy BDB. Másodszor területek között kell lennie típusú VARCHAR, BLOB vagy TEXT. Megértem, hogy más esetekben, az optimalizálás nem szükséges.
optimalizálás csapat egyszerű:
OPTIMALIZÁLJA TÁBLÁZAT tábla_neve
Ez egy nyers változatot átadni az összes létező táblák. Töredezettségmentesítés MySQL táblák. De meg kell jegyeznünk, hogy közben az optimalizálás a tábla lesz zárva. Mit jelent az, hogy nem tudom, meg kell, hogy többet megtudjon. Mivel a folyamat egy másodperc töredéke alatt, akkor annak a valószínűsége, hogy a felhasználók észre valami kicsi.
Honnan tudom, hogy optimalizálás szükség van? Ki dolgozott myphpadmin, tudom, hogy tudod, hogy egy csomó információt az asztalra. Ez nem nehéz csinálni egyedül. Van egy ilyen parancs SHOW TABLE STATUS. A kimeneti adatok nézd Data_free, akkor a kívánt számot. Ha ez nagyobb, mint 0, az optimalizálás szüksége. Ennek ellenére, a variáns finomabb.
Mintakódok annak meghatározására, hogy optimalizálás szükséges:
if ($ data_info = get_rows ( 'SHOW táblázat Állapot')) foreach ($ data_info mint $ di), ha ($ di [ 'Data_free']> 0) $ TMP1. = 'optimalizálása asztal'. $ di [ 'name'] . "
„
> // a di
>
if (! empty ($ TMP1)) $ TPL_main. = $ TMP 1.optimalizálása (Ekkor asztal le van zárva, a látogatók lehet a probléma)
„
Azt get_rows függvény az adatokat az adatbázisból, és elhelyezi azt a tömbben.
Azaz SHOW TABLE STATUS információt küldi vissza az összes táblát az adatbázisban.
A kód, nem ellenőrizni MyISAM, de most, mint általában, ezeket használják a tárhely.