1/ISAM
ISAM je dobro opredeljen in preizkušen pristop k upravljanju podatkovnih tabel, zasnovan tako, da se podatkovna baza poizveduje veliko pogosteje kot posodablja. Zaradi tega ISAM hitro opravi branje in ne porabi veliko pomnilniških in pomnilniških virov. Dve glavni slabosti ISAM-a sta, da ne podpira obdelave transakcij in ni odporen na napake: če se vaš trdi disk sesuje, podatkovnih datotek ni mogoče obnoviti. Če uporabljate ISAM za kritične aplikacije, morate vedno varnostno kopirati vse podatke v realnem času, MySQL pa lahko podpira takšne varnostne kopije zahvaljujoč funkciji replikacije.
2/InnoDB
Omogoča funkcijo nadzora transakcij, ki zagotavlja, da se niz ukazov uspešno izvede, ali pa, ko pride do napake ukazov, se rezultat vseh ukazov razveljavi; lahko si predstavljamo, da je sposobnost nadzora transakcij zelo pomembna v e-bančništvu. Podpora za COMMIT, ROLLBACK in druge funkcije transakcij. Najnovejša različica Mysql že načrtuje odstranitev podpore za BDB v korist InnoDB.
MyIASM je nova različica tabel IASM z naslednjimi razširitvami: Prenosljivost na binarni ravni. Indeks stolpca NULL. Za spremenljivke je manj fragmentov kot za ISAM tabele. Podpora za velike datoteke. Boljša kompresija indeksa. Ali je bolje imeti statistično porazdelitev? Boljše in hitrejše auto_increment obdelave.
Tukaj je nekaj podrobnosti in specifičnih razlik v implementaciji:
1. InnoDB ne podpira indeksov tipa FULLTEXT. 2. Tabele niso shranjene v InnoDB Specifične vrstice, torej izvedite select count(*) iz tabelo, InnoDB pregleda celotno tabelo, da izračuna, koliko vrstic je, medtem ko MyISAM preprosto prebere shranjene vrstice. Opazimo, da ko stavek count(*) vsebuje kjer je pogoj, je delovanje obeh tabel enako. 3. Za polja AUTO_INCREMENT tipa mora biti indeks, ki vsebuje samo to polje, vključen v InnoDB, vendar je v tabeli MyISAM mogoče ustvariti federiran indeks z drugimi polji. 4.IZBRIŠI IZ tabele InnoDB ne ustvari tabele ponazaj, ampak jo izbriše vrstico za vrstico. 5. TABELA NALAGANJA IZ Operacija MASTER ne deluje za InnoDB, rešitev je najprej spremeniti tabelo InnoDB v tabelo MyISAM, uvoziti podatke in nato spremeniti v tabelo InnoDB, vendar ni uporabna za tabele, ki uporabljajo dodatne funkcije InnoDB (kot so tuji ključi).
Poleg tega zaklepanje vrstic tabele InnoDB ni absolutno; če MySQL ne more določiti obsega, ki ga je treba pregledati pri izvajanju SQL stavka, bo tabela InnoDB zaklenila celotno tabelo, na primer ob posodobitvi Namizni nabor num=1, kjer je ime kot "a%"
Nobena tabela ni vsemogočna, le z izbiro ustrezne vrste tabele za poslovno vrsto lahko maksimiramo zmogljivostne prednosti MySQL.
MySQL Ko administrator ustvari bazo podatkov, se tabela privzeto nastavi na tip InnoDB.
InnoDB,MyISAM Kakšna je razlika med obema tipoma: Tip MyISAM ne podpira napredne obdelave, kot je obdelava transakcij, medtem ko tip InnoDB to omogoča. Tabele tipa MyISAM poudarjajo zmogljivost, ki deluje več stopenj hitreje kot tip InnoDB, vendar ne podpira transakcij, medtem ko InnoDB ponuja napredne funkcije podatkovne baze, kot so podpora transakcijam, tuji ključi itd.
Binarne podatkovne datoteke tipa MyISAM je mogoče migrirati med različnimi operacijskimi sistemi. To pomeni, da ga je mogoče neposredno kopirati iz Windows sistema na Linux sistem.
Spremenite tip motorja tabele:
ALTER TABLE TABLENAME ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Metoda zaporednega dostopa To je standardna metoda za shranjevanje zapisov in datotek. V primerjavi z drugimi pogoni za shranjevanje ima MyISAM največ orodij za preverjanje in popravilo tabel. MyISAM tabele je mogoče stisniti in podpirajo iskanje po celotnem besedilu. Niso transakcijsko varni in ne podpirajo tujih ključev. Če se nekaj vrne nazaj, bo to povzročilo nepopolno vračanje in ni atomsko. Če se izvede veliko število usmrtitev TheSELECT, MyISAM je boljša možnost.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
Pri tipih InnoDB, ki podpirajo različne funkcije, je glavni razlog za vpliv hitrosti ta, da je privzeta nastavitev AUTOCOMMIT vklopljena in program ne kliče BEGIN eksplicitno Začnite transakcijo, kar povzroči samodejni commit za vsako vstavitev, kar močno vpliva na hitrost. Lahko pokličeš start, preden se SQL izvede, in več SQL tvori eno stvar (tudi če avto-commit zadene je mogoče tudi vklopiti), kar bo močno izboljšalo zmogljivost.
1. Oglejte si informacije v tabeli, vključno z vrsto uporabljenega pogona, kodiranjem znakov, strukturo tabele itd
Uporabi ta ukaz
mysql> prikaži ustvarjanje tabele T1; --t1 je ime tabele
2. Naslednji ukaz je mogoče izvesti za preklop netransakcijskih tabel v transakcije (podatki se ne izgubijo), innodb tabele so varnejše od myisam tabel: Spremeni tabelo T1 type=innodb; --t1 je ime tabele
3. Innodb tabele ni mogoče table_name z ukazom za popravljalno tabelo in myisamchk -r Lahko pa uporabiš kontrolno tabelo t1 in mysqlcheck [OPTIONS] podatkovna baza [tabele]
4. Naslednji parametri so bili dodani ukazni vrstici za zagon baze mysql, da se vse novo izdane tabele podatkov mysql privzeto uporabljajo transakcije ( Vpliva le na ukaz create. ) --default-table-type=InnoDB
5. Začasna sprememba privzete vrste tabele je možna tako: set table_type=InnoDB;
MyISAM Prednosti: hitra hitrost, manj zasedenega prostora na disku; Porabo diska za bazo podatkov ali tabelo je mogoče ugotoviti bodisi s preverjanjem velikosti ustrezne datoteke (mape) s strani operacijskega sistema ali z uporabo SQL stavka PRIKAŽI STATUS TABELE Slabosti: Ni mehanizma za integriteto podatkov, torej ni podpore za transakcije in tuje ključe
InnoDB Prednosti: Podpora transakcijam in tujim ključem ter popoln mehanizem za celovitost podatkov. Za preverjanje zasedenosti knjižnice ali tabele lahko uporabite PRIKAŽI STATUS TABELE Slabosti: izjemno počasna hitrost, velik prostor na disku; Vse knjižnice so shranjene v eni (običajno) ali več datotekah, operacijski sistem pa ne more ugotoviti, koliko prostora ima knjižnica ali tabela
BDB Prednosti: Podpirajo transakcije, ne podpirajo tujih ključev, saj je na podlagi podpore transakcij mogoče tuje ključe posredno implementirati na strani odjemalca baze podatkov (ki je lahko strežniška stran končnega uporabnika, kot je PHP), zato je integriteta podatkov še vedno zagotovljena; Slabosti: počasna hitrost, velika uporaba diska; Ne morete poizvedovati o zasedenosti prostora v podatkovni bazi ali tabeli preko PRIKAŽI STATUS TABELE. Operacijski sistem lahko razume velikost ustrezne mape knjižnice ali ustrezne datoteke tabele, vendar ker mora BDB tabela vedno generirati dnevnik datoteko, dejanska zasedenost diska pa mora vključevati dnevnik, je velikost knjižnice ali tabele vedno manjša od dejanskega prostora, ki ga zaseda operacijski sistem.
|