Bevezetés a memcached felület mysql InnoDB

phpMySQLInnoDBMemCache

Bevezetés a memcached felület mysql InnoDB

A MySQL 5.6 volt memcache-kompatibilis, kulcsos értéktároló alapú InnoDB motort.

InnoDB Memcache Daemon ad stabilitást InnoDB adattípus kulcs-érték, amelyhez hozzáférést lehet elhelyezni a gyorsabb és optimalizált memcached protokollt. Ha ezt a protokollt átugorja: elemzés a lekérdezés, annak optimalizálása és a többi feldolgozás nem szükséges.

A mysqlnd_memcache, akkor átlátható előre kéréseiket e memcache-kompatibilis interfész.

Standard csomagok MySQL 5.6, amelyeket, Ubuntu (Trusty), nem tartalmazzák a bővítmény memcache. Ahhoz, hogy használni ezt a modult, telepíteni kell azt a hivatalos tárolókban apt-MySQL-én (Debian 7.x ziháló, Ubuntu 12.04 Pontos és Ubuntu 14.04 Trusty).

Ha már telepítette a MySQL 5.6 (vagy újabb), akkor lépjen be a MySQL root és tegye a következőket:

innodb_memcached_config.sql szkript egy pár dolgot, és az első dolog, amit csinál - megteremti innodb_memcache tárol. amely három asztal:

  1. cache_policies. Ez a tábla tárolja a szabályokat, hogyan kell elvégezni a GET parancs. SET. DELETE és a Flush.
  2. konténerek. Ez a táblázat tartalmaz egy listát a táblázatok, amelyek keresztül érhető memcache
  3. config_options - Ez a tábla tárolja a beállításokat memcache, - azaz, több oszlopot elválasztó értékek - szeparátor (alapértelmezett függőleges vonal „|”), és egy elválasztó kezelőasztalokhoz table_map_delimiter (alapértelmezett pont „”)

Másodszor, hogy végrehajtja a script - töltse le a bővítményt, és a démon memcache belül MySQL.

Most már készen áll, hogy ezt a plugin.

Létrehozása memcache tárolás

Mivel memcache motor új követelményeket ír elő táblák, nem minden InnoDB asztal lehet automatikusan használni, mint egy ilyen tároló. Használni, akkor be kell állítani az úgynevezett gyűjtemény.

Minden kollekció egy nevet, hogy használják, hozzáférnek a memcache, és tartalmaz egy az oszlopok száma:

  • nevét. név, amellyel a gyűjtemény keresztül memcache
  • db_schema. adatbázis neve
  • db_table. tábla neve
  • key_columns. az oszlop nevét tartalmazó gombot (akkor is, ha nem bánod, a többes szám, ez az egyik oszlop)
  • value_columns. oszlopban megadott név egy vessző, amely tartalmazza az érték. A memcache-értéke minden értéket az oszlopok egymástól függőleges vonalak (a táblázatban megadott config_options)
  • zászlókat. amely zászlók telepíteni memcache
  • cas_column. Oszlop neve CAS-érték telepített memcache egyen
  • expire_time_column. az oszlop nevét, amely tárolja az időt „protuhaniya” (másodpercben), vagy 0, ha nem „rohad” soha
  • unique_idx_name_on_key. elnevezni, amely tiltja egyedi korlátot a kulcs oszlopot. Ha a kulcs az elsődleges kulcs oszlop, adja meg az elsődleges

Annak érdekében, hogy szervezzük meg a boltban, akkor hozzon létre egy új adatbázist kv_data és asztali kv_store meg:

Ezután fogjuk tájékoztatni arról a beépülő modul adattár, ami egy tartály:

Miután ezt megtette, meg kell várni egy kicsit, hogy hatályba lépett, vagy indítsa újra a MySQL.

Használata memcache interfész

Most, hogy van, és fut InnoDB memcache felületen, akkor illessze be (insert) adatokat az adatbázisba, valamint egy szabályos táblázat, vagy természetesen, a memcache protokoll -, hogy lehet tenni a telnet-a.

Ha memcache protokoll - az alapértelmezett minimális, és - a műveletek számát, mielőtt az adatokat elveti InnoDB, 32, amint konfigurálása daemon_memcached_w_batch_size. Ez azt jelenti, hogy az adatok láthatóvá válik MySQL minden 32 tranzakciókat. Ez a díj a teljesítményt. Kivételt képez ez alól a használata a binlog-replikáció, abban az esetben, hogy folyamatosan 1-be.

MySQL változások azonnal elérhető memcache, el kell végezni:

Ahhoz, hogy használni memcache felületen keresztül telnet, használja azt az alábbiak szerint:

A több gyűjtemények

Alapértelmezésben az adatok tárolása vagy a gyűjtemény neve default, vagy ha ez nem létezik az első kollekció a táblázatban gyűjtemények.

Ahhoz, hogy hozzáférjen egy másik szegmens, akkor két lehetőség van:

Az első a legközelebb van a MySQL-evskomu operátor USE. Csak azt viszont, hogy a gyűjtemény magát, majd bármilyen kérdése működik ez a gyűjtemény, amíg meg nem változtatja a másikra.

A név előtt a gyűjtemény, hogy megkülönböztessék a billentyűk elé - két karakter @:

A második - az, hogy a teljes név. Ebben az esetben, csak jön szóba table_map_delimeter. ahol mi csak elé a prefix gyűjtemény @@ gyűjtése és után table_map_delimeter. Így a hivatkozás test.key válik @@ kv_data.test.key

Azt javasoljuk, hogy mindig használja ezt a szintaxist, t. Hogy. Akkor véletlenszerűen változik a gyűjtemény néhány okozta egy darab kódot nélkül visszatért az előző gyűjtemények.

A dugó mysqlnd_memcache

Ma már egyszerűen férhet hozzá adataihoz keresztül memcache interfész segítségével PHP kiterjesztés memcached vagy memcache (memcached kiterjesztése. Memcache mellék). Különösen beállíthatja a munkamenet-kezelőt használni ezt a megközelítést. És az is lehet használni rendes SQL lekérdezések. Azonban a bővítmény mysqlnd_memcache akkor átlátható átirányítani SQL lekérdezések memcache felületen, ha szükséges.

Alapértelmezésben lekérdezések összeveti egy reguláris kifejezés meghatározott MYSQLND_MEMCACHE_DEFAULT_REGEXP állandó:

Ha a kérelem megfelel, akkor a plug-in ellenőrzi, hogy szerepel-e a beállítások gyűjtemény csak mezőket a tábla és a WHERE záradék csak az egyik feltétel egy egyszerű összehasonlítás a kulcsot.

A példánkban ez a feltétel megfelel egy ilyen kérés itt:

Azonban ezek egyike sem nem:

Az ilyen kérelmeket nyújthat be az egyik mechanizmus kiterjesztés: mysql, mysqli vagy OEM, és elfogtak nélkül.

mysqlnd_memcachene bővítmény folyamatok levelet kéréseket.

Annak ellenére, hogy ez a korlátozás, annak használata is határozottan javítja a kód (amit nem kell végrehajtani fordul a memcache / memcached API), és kap egy nagy nyereség a teljesítmény a kis változások.

Felvétel, replikáció és a medence Memcache

Memcached ismert a könnyű beállítás memcached-s medence terheléselosztás és a hibatűrés, de mi a helyzet a memcache-interfész InnoDB? Hasonló módon a felvezető van jelen a replikáció a MySQL, a tény, hogy egyes másodlagos lehet használni, mint a Memcache, és a szerver csak olvasható, de ugyanazok a szabályok a szétválasztás az olvasás és az írás hasznos, ha dolgoznak a Memcache-enni.

Meg kell győződni arról, hogy kizárólag mysqlnd_memcache bővítmény hozzáférhet a medence, és összekapcsolják a bővítménnyel mysqlnd_ms a szervezet írni és olvasni szétválasztás. Ez azonban azt jelenti, hogy akkor hagyja ki a lehetőséget, hogy kihasználják a nagy teljesítmény és a Memcache-iinterfeysom a rekordot.

Mivel nincs mód, hogy jelezze memcache (d) kiterjesztése a szerverek csak a mode-on olvasható, lehetetlen a szabványos replikációs topológia master + slave medence memcached-s.

következtetés

Memcached felület InnoDB - ez sokkal több, mint egy gyors módja annak, hogy a MySQL egyszerű kulcs-érték üzlet, de minden előnyét a kiváló motor InnoDB.

Bár nem olyan gyors, mint a memcached maga, ez lehetővé teszi, hogy megszüntesse a „másik közös” a infrastruktúrára, miközben egy egyszerű csere memcached.

A következő cikk ebben a sorozatban nézzük meg caching kéri, hogy tovább fokozza a teljesítményt.