10 legjobb gyakorlatok optimalizálásához munka mysql, mysql
1. LIMIT 1 Amikor el akarja távolítani az asztalról egy egyedi karakterláncot
Néha a kérés létrehozása, akkor már tudja, meg kell, csak egy egyedi sort a táblázatban. Hozhat létre válogatott egyedi rekordok. Vagy ha csak futni egy ellenőrzést a létezését bármilyen mennyiségű rekord felel meg feltételt.
Ilyen esetekben használata LIMIT 1 jelentősen növeli a termelékenységet:
2. optimalizálása adatbázis lekérdezés használatával gyorsítótár feldolgozás
A legtöbb MySQL szerver támogatja lekérdezés cache-t. Ez az egyik leghatékonyabb módszer, hogy növeljék a termelékenységet, amely az adatbázis motor kezeli gond nélkül.
Amikor ugyanaz a lekérdezés lefut többször, az eredmény akkor érhető el a gyorsítótárból. Anélkül, hogy feldolgozza az összes asztal újra. Ez nagymértékben felgyorsítja a folyamatot.
3. Az indexelés a keresési mezők
Az indexek célja nem csak rendelni elsődleges vagy egyedi kulcs. Ha a tábla oszlopok keresést végez, akkor szinte kötelező, hogy indexelt.
El tudod képzelni, ez a szabály vonatkozik a részét a keresett szöveget, mint a „l ast_name LIKE»%«”. Amikor befejeztük a keresést a sor elejére, MySQL lehet használni ebben az oszlopban indexelés.
Azt is meg kell érteni, milyen lekérdezések nem használják a szokásos indexek. Például, ha egy-egy szóra (például „WHERE POST_CONTENT LIKE '% paradicsom%”), a reguláris index nem kapsz semmit. Ebben az esetben jobb lenne, hogy egy kereső MySQL teljes megfelelés, vagy létrehozhat saját indexet.
4. index és használata az oszlop az azonos típusú egyesítésével
Ha az alkalmazás tartalmaz egy csomó egyesület kéri, akkor biztosítani kell, hogy az oszlopok a két asztal, amit össze, indexelt. Ez hatással van az optimalizálás MySQL belső üzleti pályára.
Ezen kívül, az oszlopok, melyek kombinálva vannak, meg kell az ugyanolyan típusú. Például ha össze decimális oszlop típusa egy tábla oszlop és egy INT másik, a MySQL nem fogja tudni, hogy legalább az egyik indexek.
Még karakterkódolást kell lennie az azonos típusú az adott sorban csatlakoznak oszlopban.
5. Ha lehetséges, ne használja a SELECT lekérdezés *
Minél több a táblázat adatainak feldolgozása kérésére, annál lassabb a lekérdezés is. Fogytán az idő lemezre műveleteket. Továbbá, ha az adatbázis szerver van osztva, hogy a webszerver, vannak késések az adatátvitelben kiszolgálók között.
6. Kérjük, ne használja a módszert válogatás ORDER BY RAND ()
Ez az egyik ilyen módszer, mely eleinte úgy tűnik, hogy nagyon jó, és sok kezdő programozók essen a csalit. Fogalmad sincs, hogy milyen csapdába intézkedik magukat jelenleg megegyeznek most kezdik használni ezt a lekérdezést szűrőt.
Ha tényleg kell rendezni néhány sort a keresési eredmények között, akkor sokkal jobb módja van rá. Tegyük fel, hogy meg kell adni kiegészítő kód a kérést, hanem azért, mert ez csapda, akkor nem lehet csinálni, ami csökkenti a hatékonyságot az adatfeldolgozás, a mértékben, hogy az adatbázis nagyságát.
A probléma, hogy elvégzi a MySQL RAND () művelet (mely a számítási erőforrások, a szerver) válogatás előtt minden egyes sort a táblázatban. Ugyanakkor kiválasztott lesz csak egy sort.
Tehát válasszon egy kisebb találatok száma, és így képes lesz alkalmazni LIMIT bekezdésében leírt módszer 1.
7. A oszlop típusú ENUM helyett VARCHAR
Ha van egy olyan területen, amely számos különböző értékeinek egyféle, hanem egy VARCHAR oszlop jobb használni ENUM. Például, lehet, hogy egy oszlopot az „Állapot”, amely csak az olyan értékeket, mint az „aktív”, „inaktív”, „várakozás”, „lejárt”, stb
Van még egy lehetőség, hogy hozzanak egy olyan forgatókönyvet, amely a MySQL „ajánlat” megváltoztatni a szerkezetét az asztalra. Ha van egy VARCHAR mező típusát, a rendszer automatikusan Javasoljuk, hogy módosítsa a formátum a oszlop ENUM. Ez úgy valósítható meg, amelyben ELJÁRÁS felmérés () függvényt.
8. Függőleges particionálás (split)
Függőleges particionálás jelentése folyamat, ahol a tábla szerkezete osztva függőlegesen okokból optimalizálása az adatbázis.
Így a fő felhasználók tábla csökken jelentősen méretű. És mint tudjuk, a kisebb táblák feldolgozása gyorsabb.
2. példa: Ön a táblázatban van «LAST_LOGIN» (utolsó belépés). Ez minden egyes alkalommal frissítésre a felhasználó bejelentkezik a felhasználónevével. De minden változás táblázat alatt a lekérdezés cache az asztalra, amely tárolja a lemezen. Tudod mozgatni ezen a területen egy másik asztalra, hogy csökkentsék a találatok száma a főtábla felhasználók.
Azonban meg kell bizonyosodni arról, hogy mind a két táblában vannak kapcsolva, miután a partíció nem lesz használható a jövőben ugyanolyan gyakorisággal. Ellenkező esetben, ez jelentősen csökkenti a teljesítményt.
9. A kisebb oszlopok - gyorsabb
Olyan motorok adatbázis lemezterület adat, esetleg a legnagyobb akadálya. Ezért információt tárolnak tömörebben, mint a szabály, hasznos teljesítmény szempontjából. Ez csökkenti a lemez hozzáférést.
A MySQL Docs létrehozott számos követelményt tárolására különböző típusú adatokat. Ha azt várjuk, hogy a táblázat nem tartalmaz túl sok rekordot, nincs ok arra, hogy az elsődleges kulcs mezők INT típusú, MEDIUMINT, smallint. és bizonyos esetekben még tinyint. Ha a dátum formátum akkor nem kell, hogy idő (óra. Perc), majd a DATE típusú mező helyett DATETIME.
De még mindig győződjön meg arról, hogy a jövőben még maradt magad elég hely a fejlődésre. Ellenkező esetben, egy bizonyos ponton előfordulhat, hogy valamilyen összeomlása.
10. Válassza ki a megfelelő motort
Két fő motorja MySQL: MyISAM és InnoDB. Mindegyiknek megvannak az előnyei és hátrányai.
MyISAM jó dolgozni „nehéz” alkalmazások, de még rosszabb, hogy megbirkózzanak az adatfeldolgozást az adatbázisban, ha nagy rekordok száma.
Még ha frissítése csak egy területen, az egyik vonal, az egész asztal zárható, és nem más folyamat nem fér hozzá, amíg a befejezése a kérelmet. Ugyanakkor MyISAM nagyon gyors feldolgozás lekérdezések, például SELECT COUNT (*).
InnoDB - egy bonyolultabb mechanizmus és lassúbb lehet MyISAM fogantyú legtöbb esetben. De ez olyan funkciókat támogat, lehetővé teszi, hogy hatékonyabban tudjon együttműködni a nagy adatbázisok.
Fordítása a cikk „10 MySQL bevált Optimization» készítettünk egy csapat barátságos Web design projekt tól Z-ig