Indexek az első lépés azon az úton, sebesség, hostinfo

Indexek az első lépés azon az úton, sebesség, hostinfo

Adatbázisok - egy speciális információs tárház, és velük dolgozni, mi tekintve adatállományok és műveletek, hogy az adatok, mit sem törődve a tény, hogy a tényleges berendezés mögött őket. Létrehozása SQL-lekérdezés, azt jelenti, hogy minden olyan tevékenységet végeznek táblák ugyanabban az időben, mert az idő fogalma a csapatok nem SQL-nyelv. Amikor adatbázisunkban kicsi, akkor nem veszi észre, hogy az adatbázis szerver időre van szüksége, hogy feldolgozza az említett érintkezési az asztal, hogy megtalálják a szükséges húrok, letölteni vonatkozó feljegyzések. De a növekedés az információ az adatbázisban tárolt, ez a probléma egyre inkább láthatóvá, és egy bizonyos ponton világossá válik, hogy szükség van, hogy különleges intézkedéseket. Kezdjük, hogy növeljék a teljesítményt, mint a szerver, nagyobb és gyorsabb berendezés vagy megpróbálja beállítani a meglévő érdekében, hogy nyomja ki a maximális sebesség, csak egy cél -, hogy gyorsítsák fel a végrehajtását lekérdezések adatbázisunkban.

De mielőtt figyelembe véve a kérdés a „fizikai” szintet, akkor meg kell vizsgálni, hogy használ-e valamilyen által kínált lehetőségeket az adatbázis szerver nem. Nagyon gyakran az oka a lassú lekérdezés, hogy a táblák nem indexelt. Általános szabály, hogy ha a tábla nem indexek, a legtöbb esetben nem valószínű, hogy jelentősen javítja a teljesítményt az adatbázis más módon.

Ha az index adatbázis szerver sokkal gyorsabb adatokat lekérdezni

Fontolja meg, hogy a táblázat index felgyorsítja a kérelmek feldolgozását. A táblázat nem rendelkező indexbejegyzéssel tárolt rendszertelenül megtervezésében, és amikor megpróbálja kinyerni az információkat adatbázis szerver megkeres minden rekordok létrehozása érdekében megfelelő feltételekkel. Példaként, hogy a MySQL adatbázis szerver. amely információt tárol az árut. Tegyük fel, hogy ki kell törni az összes sort az előállított áruk egy adott országban, és ha ezt a műveletet elvégezni gyakran helyett iterációjával végig a sorokat tudjuk index a táblázatban az árut elemeket tartalmazó mező száma az országban country_id. Alkotó index tartalmazni fog egy rekordot az egyes sorok a táblázatban, és bejegyzései szerint kerül rendezésre country_id területen. Most, amikor az adatbázis szerver kérések megtudhatjuk, hogy milyen bejegyzések lesz szükség az index, és ha szükségünk van egy olyan ország, 5-ös szám, elérte az index legfeljebb 6-os szám, az adatbázis szerver képes megállítani keres -, mert a sorok az 5-ös szám az index egyértelműen nem.

Hasonlóképpen, minden adatbázis szerver, vannak algoritmusok, hogy gyorsan megtalálja sorok közepén az index listát, amely lehetővé teszi, hogy optimalizálja a keresést a szükséges szálakat. A fenti példa nem magyarázza a kialakításából származó előnyöket index például, hogy rendezni a táblázat szerint ezen a területen, és tárolja azt ebben a formában. Igen, egy ilyen döntés akkor alkalmazható, ha az összes kérelmet nyújtottak keresni ezen a területen, de szükség lehet válogatás, és más területeken, így mi is létrehozhatunk egy táblázat több mutatót a legnépszerűbb lekérdezések - például az áru mennyisége, az ár és egyéb paramétereket.

Amennyiben a mintavétel adatok több táblából kódok még hatékonyabb

Ha az indexek tisztában kell lenniük, hogy hiányosságai

Amellett, hogy a feltételeket a lekérdezés optimalizálási HOL, indexek hasznos lehet más esetekben. Nyilvánvaló, hogy a rendezési a kiválasztott adatok is gyorsabb lesz indexelése ezen a területen. Ez is gyorsabb lesz adatminta az aggregátum függvények MIN (), és a MAX (), hogy megkapjuk a maximális és minimális értékek sorban csoportosulások. Bizonyos esetekben, ha azt szeretnénk, hogy kivonat információkat nyújthat maga az index, utalva egy adatbázis tábla nem valósították meg. Lehet, hogy egy tévhit, hogy meg kell indexelni minden területen a táblázatban - nem lesz rosszabb. Ez nem egészen igaz - indexek, annak ellenére, hogy nyilvánvaló előnyei, vannak bizonyos hátrányai. A legszembetűnőbb probléma az, hogy a fájl bármelyik index időbe lemezterület, és mivel szükség van indexek legrelevánsabb nagy táblák, a további indexfájlokról nőni fog vele.

A második probléma abban rejlik, hogy az indexek, mint a sebesség választó információt, és lassítja a műveletet, hozzátéve, szerkesztése és törlése bejegyzések - sőt ebben az esetben van szükség, hogy a változások az összes indexet a táblázat változó. Van is még néhány irányelvet, amely növelheti a hatékonyságot az index, miközben minimálisra csökkenti azok gyengeségeit. Az egyik javaslat már említettük: az index az alábbi mezőket, hogy keresi, és nem lehet kiválasztani, hogy egy jó jelölt lenne indexelési említett területen a WHERE feltétel. Továbbá, ne feledje, hogy ez sokkal hatékonyabb indexeket használnak mezők egyedi értékeket. Ha a mező sok azonos értékeket, az index nem igazolhatja magát és. Az indexek különösen a hosszú karakter területek, szükséges elemezni - lehetséges, hogy a kulcs nem egyedülálló az egész területen, és az első 10-20 karakter ezen a területen, ami nagyban ment az index fájl méretét és biztosítja végrehajtásának felgyorsítását a kéréseket. Az ilyen korlátozás a karakter területek javasolt, és a szöveget, és BLOB típusú kötelező mezőket.

Nagyon gyakran, ha nem hoz létre egy index egy területen, és több területen is lehet használni, hogy a mintákat más esetekben. Ebben az esetben a jogállamiság „szélsőbaloldali”. Mondjuk, a tábla a termékkel, hoztunk létre egy indexet az ország mezők, kategóriája, mennyisége - például, hogy rendezze a táblázatot, ebben a sorrendben. Ezt tudjuk használni ugyanazt a kódot abban az esetben, ha szükségünk van egy index keresni az ország területén, és ha szükséges, az index egyidejű válogatás a mezők és az ország kategória. Ezért, ha létre indexeket több területen, hozzátéve, az új index jó lenne, hogy ha ez nem ismétli meglévők.

Készítsen indexek szükség

Hozzon létre egy indexet a tábla lehet mind idején létrehozása, majd adja meg a következő egyszerű szabály - szükség van, hogy hozzon létre indexeket, ha szükséges. Amikor létrehoz egy tábla területén, amely egy egyedülálló, be kell jelenteni a legfontosabb területeken elsődleges kulcs, egyedi, automatikusan létrehoz egy indexet ezen a területen. Ezek a mezők nem tartalmazhatnak duplikált értékeket vagy egyenlő NULL, és ezért nagyon gyorsan feldolgozni. Hasonlóképpen, akkor adja meg a kulcsszót, ha egy tábla létrehozásakor

INDEX index_name spisok_poley.

ahol az összes paraméter a kulcsszó után INDEX kötelező. De ez a lehetőség csak ritkán használják - gyakrabban van szükség egy index létező táblához. Használhatja a nyilatkozatot ALTER TABLE, mellyel változtatni a meglévő táblák:

ALTER TABLE tábla_neve INDEX index_name spisok_poley;

Az index kerül létrehozásra az oszlopokhoz spiske_poley. Ha index_name nincs megadva, akkor automatikusan létrejön az első indexelt mező. Mert karakter mezők hosszának csökkentése indexelt értékek, megjelölve a karakterek száma az n index a imeni_polya (n) Így tudjuk az asztalunkhoz, hogy hozzon létre egy indexet:

ALTER TABLE tárgyak INDEX country_id;

Ha már nincs szüksége az index, akkor könnyen eltávolítható a rendelet az index neve:

ALTER TABLE tárgyak DROP INDEX country_id;

Vannak is szinonimái ilyen csapat tisztább szintaxis:

CREATE INDEX index_name ON táblanév spisok_poley;
DROP INDEX index_name ON táblanév;

Kapcsolódó linkek

Kapcsolódó cikkek