Mysql - ez a legjobb nosql-rendszer

Ha figyelembe vesszük a parancsfájlok használatát NoSQL, mint például a tárolási kulcs-érték párokat tűnik, hogy a MySQL sokkal előnyösebb a teljesítmény, a könnyű használat és a stabilitás. MySQL - egy rendszer alapos rengeteg online anyagok, amelyek lefedik az összes téma, az alapvető műveleteket és a hiba elemzés replikáció és a különböző használati szokások. Ez ad MySQL előnyt fiatalabb NoSQL-rendszerek, amelyek nem rendelkeznek ilyen tapasztalatokkal.

Az elmúlt években, NoSQL-rendszere lett az uralkodó trend. Sok fejlesztő látja a NoSQL-rendszerek, mint például MongoDB. Cassandra, Redis vagy a Hadoop, a legjobb megoldás, hogy építsenek az alkalmazások, tekintve, hogy az egyik termékcsalád, ami érvényteleníti a régi SQL-rendszerben.

Ebben a cikkben, akkor miért a mi véleményünk, hogy használja a MySQL tárolására kulcsértékpárokat jobbak, mint a legtöbb speciális NoSQL-rendszereit, és utasításokat MySQL.

Definiálása Wix oldalon

Mysql - ez a legjobb nosql-rendszer

Ha frissíti az oldalon a hagyományos normalizált modell, meg kell használni a tranzakció frissítse több asztal adatok integritásának biztosítása (megjegyzendő, hogy az ügylet egy lock az adatbázis szintjén, ami megakadályozza az egyidejű felvételt, és néha olvasni a táblákat részt). Továbbra is dolgozni egy ilyen modellt, akkor valószínűleg eléri a sorozat kulcs típus minden tábla, index és idegen kulcs az URL útvonalak asztalra.

Azonban adatmintá- alapuló normalizált rendszer tele van számos szövődmény:

• Lock korlátozza a hozzáférést az asztalra, így korlátozhatja a kapacitás nagy adatmennyiségek;
• tárgya olvasás szükséges néhány SQL lekérdezések (4 esetünkben), illetve a használata JOIN - és ez is hatással van a késleltetési idő;
• kulcsattribútum SERIAL igényel zárak, ami ismét korlátozza az írási teljesítményt.

Ezek a problémák korlátozza a sávszélességet és párhuzamosságát lekérdezések, hogy biztosítani tudjuk a MySQL (vagy bármilyen más SQL-rendszer). Mivel ezeket a hiányosságokat, valamint abból a tényből, hogy ez lényegében egy pár kulcs-érték, sok fejlesztő inkább nézni-NoSQL megoldás, amely jobb teljesítményt és a párhuzamosság, még azon az áron a stabilitás, az integritás és a rendelkezésre állás.

Wix azt találtuk, hogy a MySQL, ha kreatívan használják a boltban kulcsértékpárokat, jobban működnek, mint a MySQL egy normalizált adatmodell (fent), és jobb, mint a legtöbb, NoSQL rendszereket. A jelenlegi rendszer olyan paraméterekkel skálázás kapacitás párhuzamosítását kéri, a késleltetési idő, amely volna becsület bármely NoSQL-rendszer. Íme néhány részlet a mi rendszerünk:

• aktív beállítás három adatközpontok (aktív-aktív-aktív);
• kapacitása mintegy 200 000 RPM;
• útvonalak asztal térfogata mintegy 100 millió lemezt, 10 GB szabad lemezterület;
• webhelytáblát mintegy 100 millió lemezt adott el, 200 GB merevlemez-terület;
• átlagos olvasási lappangási - 1,0-1,5 milliszekundum (. Tény, 0,2-0,3 ms egyetlen adatközpont).

Megjegyezzük, hogy a sorrendben 1,0 ms késleltetéssel. Úgy véljük, lenyűgöző teljesítményt a legtöbb alapuló rendszerek kulcsértékpárhoz, beleértve a felhő-alapú rendszerek és a nyílt forráskódú rendszerek. És elértük ezt a MySQL (egyszerű, mint általában hiszik, SQL-rendszerben).

Itt van egy rajz, amit használunk:

Mysql - ez a legjobb nosql-rendszer

Minden mezőt, amelyeket nem használnak például a lekérdezési kifejezések kerültek süllyeszteni a típus mező egy folt (site_data szöveges mező). Ez magában foglalja a táblázatok al-obj, valamint bármely területén az objektum asztalra. Vegyük észre, hogy nem használja a sorozat kulcs típus helyett használjuk a mező típusú VARCHAR (50), amely tartalmazza a felhasználók által létrehozott változók GUID (erről bővebben a következő fejezetben).

Az alábbiakban az általunk használt kérelem, azt nagy sávszélességű és alacsony késleltetésű:

Van első kérés érkezik az új útvonalak asztal egyedi index, a lekérdezés vissza kell csak egy érték. Ezután áttekintjük oldalak az elsődleges kulcsot, ismét keresi ugyanazt az értéket. Beágyazott szintaxis lehetővé teszi a folyamat mind az SQL-lekérdezés egy hívást az adatbázisba.

Az eredmény fent látható, hogy körülbelül 1 msec. következetes teljesítményt a nagy forgalom és magas frissítések gyakoriságát. Frissítés polutranzaktsionnye, alkalmazása nélkül is a tranzakció. Ez tette lehetővé, köszönhetően annak a ténynek, hogy vezessenek be az egész oldal egy INSERT parancsot, és amíg bemutatjuk adatok útvonalak feladat, kérések nem érzékeli. Vagyis, ha bevezetjük az első adatok a honlapon, majd a módját, bízunk benne, a integritását az adatokat, még határhelyzeteket, miközben adataink a táblázatban nem kapcsolódó oldalak.

Használatával kapcsolatos útmutatást MySQL NoSQL-rendszer
A szerzett tapasztalatok a fenti példában (és más hasonló esetek Wix gyakorlat), az általunk kifejlesztett egy rövid lista ajánlások alkalmazása MySQL NoSQL rendszereket.

A legfontosabb dolog, hogy emlékezzen, amikor a MySQL NoSQL-rendszer - az, hogy elkerüljük a zár bázis és összetett lekérdezési szinten.

• Ne használja a tranzakciókat, amelyek blokkolása. Ehelyett a tranzakció a mellékletben;
• Ne használja a soros típusú kulcs. Ezek a kulcsok lezárásához vezetnek, és bonyolítja konfiguráció típusú aktív-aktív;
• A egyedi kulcsok az ügyfelek. Az általunk használt GUID.

Optimalizálása a szerkezet a olvasás, figyelni, hogy számos további javaslatok:

• Ne végezzen normalizálása;
• Ha olyan területen - meg kell indexelni. Ha a mező az index nem kell tárolni, hogy a területen a típusú BLOB / TEXT (JSON vagy XML);
• Ne használjon idegen kulcsokat;
• Tervezze meg szerkezetet úgy, hogy kérésre lehet olvasni több különálló,
• Ne használja az ALTER TABLE utasítás. Ezek a parancsok járnak blokkoló és időszakok átmeneti fogyatékosság. Ehelyett használja a Live Migration adatátvitelt.

Ha az Ön által kért adatok:

• keresse rekordok az elsődleges kulcsot vagy indexet;
• Ne használja a JOIN;
• Ne használjon aggregációs feladatokat;
• fut a teszt funkció (BI adatokat kutatás) a replikák, és nem az alapján a fejét.
Azt tervezzük, hogy írjon egy cikket, ahol részletesebb tájékoztatást átadása élő Bevándorlás az adatok és műveletek alkalmazása révén.

Akkor másképpen gondolkodni

Talán ez a legfontosabb megállapítása, ezt a cikket. Nagyon jó - használata MySQL NoSQL-rendszer, ez nem így volt tervezve. Amint ebben a cikkben bemutatott, egy példa a használata MySQL használható kulcsértékpárokat helyett egy speciálisan erre a célra kialakított NoSQL-rendszerek. Wix választottuk MySQL dolgozni kulcsértékpárokat (és nem csak) azért, mert a könnyen használható, könnyen kezelhető, és ez egy nagy ökoszisztéma. Mint egy bónusz, ez biztosítja a késedelem teljesítményt, a teljesítményt és a párhuzamosság, talán jobb, mint a legtöbb NoSQL-rendszereket.

Vezető szoftvertervezője tervező létrehozni egy Wix oldalon.
Yoav Abraham

Kapcsolódó cikkek