Buna ziua, azi vom vorbi despre tipurile de tabele în MySQL. Arhitectura MySQL vă permite să conectați diferite tabele motoare. În prezent, MySQL acceptă mai multe tipuri diferite de tabele, fiecare dintre care are propriile avantaje și dezavantaje. Voi enumera pe scurt și descrie principalele tipuri de tabele, și apoi petrece un test de performanță de mici tipuri cele mai frecvent utilizate - MyISAM și InnoDB.
Pentru ceva pentru a vedea ce tipuri acceptate de instalarea MySQL este necesară pentru a executa următoarea interogare SQL:
Rezultatul este un tabel care conține informații despre ce tipuri de tabele sunt instalate pe sistemul dvs., și o scurtă descriere a capacităților lor.
motor de stocare MySQL Federate
motorul de stocare MyISAM
/ Dev / motor de stocare nulă (tot ce scrie dispare)
Colectia de tabele MyISAM identice
Hash pe bază, stocate în memorie, util pentru tabele temporare
motor de stocare Arhiva
Suporta tranzacții, blocare la nivel de rând, și chei străine
Noi, în principal susținerea coloană va fi interesat, care include suport pentru tipul de date de masă și pot fi setate la: NU - nu sunt acceptate, YES - sprijinit, implicit DEFAULT -uzate. Începând cu versiunea 5.5.5 tipul implicit este selectat InnoDB, anterior tipul standard a fost MyISAM.
În versiunea acceptată MySQL 5.5 9 tipuri diferite de tabele.
- InnoDB - motor cu suport pentru tranzacții, comisioane ilegale și de protecție împotriva pierderilor de date. În acest tip de tabele utilizate la nivelul blocului de înregistrare și nu citește blocarea, îmbunătățind astfel performanța atunci când modul multiplayer. InnoDB stochează datele de utilizator în indexurile grupate, pentru a compensa I / O pentru interogări simple, bazate pe chei primare.
- MyISAM - motor de tabele MySQL utilizate aplicații în principal bazate pe Web, depozite de date și alte medii software. Acest tip de tabel este susținută de toate instalațiile de MySQL.
- Memorie - stochează datele în memorie pentru un acces foarte facil. De asemenea, cunoscut sub numele de HEAP (heap).
- Merge - utilizate pentru gruparea logică a tabelelor MyISAM identice și face apel la ei ca un singur obiect. Ei bine potrivite pentru depozite foarte mari de date.
- Arhiva - solutia perfecta pentru stocarea unor cantități mari de informații care nu necesită un acces frecvent.
- Federate - oferă posibilitatea de a combina diferite servere MySQL pentru a crea o bază de date logică de la mașinile fizice multiple. Ideal pentru arhitecturi care suportă stocarea de date distribuite.
- CSV - stochează date de utilizator într-un fișier text valori de partajare cu virgule. Folosit în cazul în care aveți nevoie de un simplu schimb cu aplicații care pot exporta date / import din format CSV.
- Blackhole - primește, dar nu returnează date. Rezultatele oricăror solicitări din aceste depozite vor fi probă martor.
- Exemplu - motorul de testare nu efectuează nici funcții care vor fi utile doar pentru dezvoltatori, care vor să scrie motorul, ca un exemplu.
Un tabel comparativ al principalelor tipuri de tabele
Volumul maxim de date stocate
Indexuri Căutare completă
Suport pentru baze de date pus în cluster
Testarea de performanță InnoDB și MyIASM
De cel mai mare interes pentru servicii web și de a face InnoDB MyISAM. Acum vom efectua un test comparativ al performanțelor acestor tipuri de tabele. Pentru a face acest lucru, creați mai întâi două din aceeași structură de masă, dar cu un alt tip de motor de stocare:
Scrie un mic script care va efectua 3 teste: înregistrarea de date (insert), prelevarea de probe de cheie, prelevarea de probe nu a câmpului cheie.
Pentru ca-fi pentru a efectua testul, trebuie să raskomentit un bloc de cod corespunzător. Și, de fapt, asta e ceea ce am primit ca urmare a testelor:
Prelevarea de probe de cheie
Prelevarea de probe de nici un câmp cheie
După cum putem vedea MyISAM mult mai rapid, în special vizibile atunci când introduceți date. Deși InnoDB și oferă o serie de noi caracteristici și beneficii, cum ar lentoarea nu îi permite să concureze cu MyISAM, în special în aplicații web.