particionálás táblákat a mysql fekete doboz

particionálás táblázatok mySQL

Kezdve 5.1 verzió MySQL támogatja vízszintes partitsirovanie táblázatokat. Mi ez? Particionálás (particionálás) - ez particionálás nagy táblák logikai részekre a kiválasztott feltételeknek. Az alsó szinten a MyISAM táblákhoz, hogy fizikailag különböző fájlokat 3 per partíció (táblázat definíciója, index fájl és adat fájl). Mert InnoDB táblákat az alapértelmezett konfiguráció - különböző terek a táblázatok InnoDB fájlok (ne felejtsük el, hogy InnoDB konfigurálását teszi lehetővé az egyes tároló adatbázis szintjén, vagy akár külön táblázatokat).

Hogy néz ki?

A legfinomabb - kérelmeket egyáltalán nem kell átírni / optimalizálás:

Tehát mi történik:

Sőt, a gyorsulás érhető el, még abban az esetben lekérdezés végrehajtása érintő összes adat minden partíció - sőt ebben az esetben, az első elsődleges „kezelés” táblákat kevesebb akkor az adatok egyesült, és készül a végleges számítást. Tehát ez csak az „első” szakasz, ebben az esetben sokkal gyorsabb lesz.

Melyek előnyei?

A fő előnye azt mondanám, hogy a partíciót a „működési” adatok (azaz a legújabb, melyek a leggyakrabban fordul elő mintavétel) minimális mérete, és ennek eredményeként, eltárolható RAM.

Ha van egy napló, amely folyamatosan rögzíti és merevlemez nincs ideje, és amit tesz a raid nem teszi lehetővé a vallás, akkor állítsuk be a felosztása a hash függvény, és adja meg, egy partíciót minden merevlemez áll az Ön rendelkezésére. Ebben az esetben az új adatok írhatók egyenletesen az összes merevlemez.

Ami azt jelenti, „elkülönítés” az adatok rendelkezik mySQL?

Több mint egy értéktartomány

Partíciót RANGE (store_id) (
PARTÍCIÓ p0 -nál kisebb értékek (10)
PARTÍCIÓ p1 -nál kisebb értékek (20)
PARTÍCIÓ p3 -nál kisebb értékek (30)
);

A pontos értékek listája

Partíciót LIST (store_id) (
PARTÍCIÓBLOKKOLÁS pNorth ÉRTÉKEK (3,5,6,9,17),
PARTÍCIÓBLOKKOLÁS pEast ÉRTÉKEK (1,2,10,11,19,20)
)

Miért kérdezed? Osztott partíció vagy le kell alapulnia optimalizálása mintavételi szempontok (ami gyakran), vagy alapján optimalizálja a felvétel okok (ritkábban). Ennek megfelelően, az ideális választás - ez, ha törik egy táblázatot a lehető legnagyobb számú partíciót úgy, hogy 90% lesz az összes minta fordul elő egy partíción belül. És ha van egy komplex mintavételezési logika (például a tárgyak északi kerületek a város, amelyek az azonosító ellentmondás), hogy néha érdemes felsorolni őket erőszakkal.

Partíciót hash (store_id)
VÁLASZFALAK 4;

Nem lehet kezelni partitsirovaniem, egyszerűen pont, amelynél a területen építeni hash és hány „sub-táblák” létrehozni. Miért? Sokkal gyorsabb a mintavétel a megadott területen. Egyes esetekben ez lehet elérni „egységes diszperzió” és a gyorsulási adatok rögzítésére.

Majdnem ugyanaz, mint a hash, de logikusan - a kulcs.

Partíciót KEY (S1)
VÁLASZFALAK 10;

Ie mintavétel az említett kulcsfontosságú területen zajlik a lehető leghatékonyabban.

De akkor ugyanazt kell döntenie az úton partitsirovaniya. Kiválóan alkalmas látogató számláló, amikor a belépés az egyetlen azonosítója, amelyre ki szeretné választani az összes többi adatot.

Nem függőleges partitsirovaniya. Ez az, amikor a különböző oszlopok (mezők) vannak különböző „subtables”. Mert néha hasznos, akkor lehet elérni ezt a saját, még ha nem is olyan átlátszó: a split az asztal két, összeköti őket az elsődleges kulcsot. Ha szeretné a szépség - akkor emellett létre őket VIEW, például az, hogy nem fogják felülírni a régi része a kódot.

És befejező a cikk egy példa egy „igazi” partitsirovaniya asztal - havonta. Mivel LIST / tartomány fogadja el csak egész értékeket, meg kell egy kicsit trükkös:

PS: A mysql mindig van egy kis „trükkös”, hogy az unalmas soha nem lesz vele, és viszont soha nem fogjuk hagyni munka nélkül :)

Segített ez a válasz? Igen Nem

Sajnos, nem tudtuk, hogy segítsen a probléma megoldásában. A felülvizsgálat lehetővé teszi számunkra, hogy javítsa ezt a cikket.

Kapcsolódó cikkek