Mysql használata indexek


MySQL: használata indexek


Folytatva a témát a tegnapi MySQL, szeretnék beszélni veled indexelés táblázatok.

Önmagában az építőiparban a táblákat, és a fellebbezést a tartalmuk - olyan egyszerű és világos dolog, hogy sok, miután elsajátította az alapvető technikákat, egyszerűen megszűnik tanulmányozza az építési szintaxis és optimalizálja a táblákat alaposabban.

Közben az egyik csak indexelés táblázatok néha emel webhely teljesítményének több alkalommal.

Milyen állat - indexelés? Hadd magyarázzam egy példát.

Azt hiszem, felesleges magyarázni, hogy miért mindez történik, és miért könyvtárosok olyan féltékenyen figyeli a végeredmény érdekében a könyvek a polcokon. De könyörgöm felhívni a figyelmet, hogy a relatív hatékonyságát keresésének strukturált rendszer, amely egyébként általában elhanyagolt az építőiparban és a számítógépes adatbázisok.

Tegyük fel, hogy egy könyvtárban keres egy könyvet, „Hogyan növekszik virágok a száraz területeken.”

Ha elkezdesz unalmas keresztül minden könyv a könyvtárban, akkor van ez több, mint egy nap, vagy akár egy hónap, ha ez egy nagy könyvtár.

Tehát mi a fasz, én sajnálom a durvaságot, tesszük a számítógépek meg kell vizsgálnunk az információ iránti tompa brute force? Csak azért, mert ők gyorsan?

Igen, gyorsan. De ha ez szükséges ahhoz, hogy a keresést a több ezer rekordot. És ha beszélünk milliók? Vagy úgy gondolja, hogy az adatbázis nem olyan nagy, hogy kezelni annak optimalizálás? Tévedsz, kedvesem. Amint a bázis, hogy kapcsolja be több száz ember, így a több ezer rekord azonnal forduljon az adatbázis motor a milliók! És a szolgáltató fog neked egy nagyon ésszerű megjegyzés.

Szóval Az a tény, hogy az adatbázist kell indexelni - nem kétséges, minden épeszű programozó. Megfelelően kialakított indexek lehetővé teszi számunkra, hogy megtalálja a megfelelő információkat, „one-touch”.

Hogyan történik ez technikailag - nem feltétlenül tudja. Elég, ha szem előtt tartani, hogy a MySQL, valamint bármely más adatbázis motort használ a további szabad hely tárolni a fájlokat index. Meg kell tudni, csak hogy nem termel felesleges indexek. Minden tudnia kell, mikor kell abbahagyni. Még ebben az esetben hasznos indexelés táblázatok.

Úgyhogy csak meghatározni, és hogy mi kell feldolgozni.

És szükség van az index a tábla mezőinek, amelyen van egy kereső, vagy válogatás adatokat.

Ha ehhez hozzátesszük a táblázatban könyvek BOOK_NAME index mező (a könyv címe), akkor a MySQL jön létre az index az asztalra. Ez azt jelenti, rendezni a táblázat által meghatározott területen, és tedd a címkék és linkek egy cellát egy valódi táblázatban.

Az épület egy index BOOK_NAME területen, a számítógép megtalálja az első betű a szükséges munkák szinte azonnal, mert ez már nem szükséges rendezni az egész táblát, de csak nézd meg, hogy részt, ahol a rekordok tárolódnak a kívánt betűt.

Még egyszerűbben, ha keresünk egy könyvet az „M” betű, a számítógép nem fog rendezni kezdődő bejegyzésekhez más betűk, jól tudva, hogy nincsenek feljegyzések, amelyek megfelelnek a lekérdezés.

És ha könyvünkben adatbázis tartalmaz 100.000 könyv, amelyből csak 30 az F betű, az on-demand „hogy megtalálják az összes könyvet a levelet F”, a számítógép felsorolja csak 30 bejegyzés jelenlétében az index, vagy felsorolja 100.000 rekordok hiányában.

Véleményem az előny nyilvánvaló.

By the way, indexelés szöveges mezők - a munka egy kicsit bonyolultabb, mint a mezőindexelés másik típusú. Hadd magyarázzam meg. Numerikus, alfabetikus, logikai, dátum mezők, időt, és mások - indexelt, mint általában, minden további nélkül gondolat.

változtassa táblázat tbl_books hozzá index i_date (book_date);

Ez az irányelv meghatározza a MySQL book_date létrehoz egy indexet a pályán.

Hasonlóképpen, akkor létre indexeket más területeken, ahol vagyunk érdekeltek, hogy keressen, vagy válogatás.

Létrehozása a szövegmezőbe index bonyolítja csak az a tény, hogy meg kell határozni a karakterek száma elejétől a felvétel, amely ahhoz szükséges, hogy létrejöjjön egy index.

És akkor meg kell értékelni maguknak kell alapozni a méret a hasonlóság az első karakterek különböző nyilvántartások és így tovább.

Például, ha építünk egy indexet utcák neveit, akkor nem kell index azokat teljes hossza mentén, és abból lehet kiindulni, hogy a legtöbb bejegyzés különbözik már valahol az ötödik levél.

És ha index kódok golyóscsapágy, az index, annál jobb, mint a lehető legtöbb karakterre, mert a nagy számú termék szállítására kódok, amelyek csak az utolsó betű vagy szám.

Ha azt szeretnénk, hogy milyen területen a táblázatban vannak indexelve, hadd MySQL parancsot:

és MySQL megjeleníti az összes információt az asztalra tbl_name, beleértve a szintet mezőindexelés.

Vagy részletesebben, csak mintegy indexek:

mutatják index tbl_name;

Ez még mindig meg kell jegyezni, hogy több területen is részt vehetnek az index. Nem feltétlenül egyet.

Ha az adatbázis fölött leggyakrabban keresett az adott összeget dátum tartomány, akkor logikus, hogy hozzon létre egy indexet a következő két területen: az összeg és a dátumot. Ez azt jelenti, hogy hozzon létre egy indexet két területre helyett két index minden mezőt!

változtassa táblázat tbl_name hozzá index i_name (field1, field2);

Keresés az egyedi indexek egy kicsit gyorsabb, így ha a mező értéke mindig egyedi - nem túl lusta is beszélve, hogy a táblázatban design. MySQL is köszönöm a gyors választ adtak a kérdésre.

Mielőtt búcsút, szeretnék mondani egy hasznos iránymutatást MySQL. magyarázza el a nevet.

Ha fel a szót előtt minden lekérdezést az adatbázisnak, MySQL nem jeleníti meg a keresési eredményeket, és azt mutatja, részletes információt az eszközöket, amelyekkel meg kellett használni, és hány műveleteket kellett tennie annak érdekében, hogy a választ a kérésére.

Ez a varázsszó magyarázatot fog hatékonyságának felmérése minden kérést, és állítsa be az összes indexek a bázis.

Sikeres indexelés, és igen, akkor érkezik a sorrendben!

Kapcsolódó cikkek