1/ISAM
ISAM je dobre definovaný a overený prístup k správe dátových tabuliek, ktorý je navrhnutý tak, že databáza sa dotazuje oveľa častejšie, než sa aktualizuje. V dôsledku toho ISAM vykonáva čítania rýchlo a nezaberá veľa pamäte a úložných zdrojov. Dve hlavné nevýhody ISAM sú, že nepodporuje spracovanie transakcií a nie je odolný voči chybám: ak vám spadne pevný disk, dátové súbory sa nedajú obnoviť. Ak používate ISAM pre kritické aplikácie, vždy musíte zálohovať všetky svoje dáta v reálnom čase a MySQL takéto zálohovacie aplikácie dokáže podporiť vďaka svojej replikačnej funkcii.
2/InnoDB
Poskytuje funkciu riadenia transakcií, ktorá zabezpečuje, že súbor príkazov je úspešne vykonaný, alebo keď dôjde k chybe príkazu, výsledok všetkých príkazov sa vráti späť; je možné si predstaviť, že schopnosť riadenia transakcií je v e-bankovníctve veľmi dôležitá. Podpora COMMIT, ROLLBACK a ďalších transakčných funkcií. Najnovšia verzia Mysql už plánuje odstrániť podporu BDB v prospech InnoDB.
MyIASM je nová verzia IASM tabuliek s nasledujúcimi rozšíreniami: Prenosnosť na binárnej úrovni. Index stĺpca NULL. Pre premenné riadky je menej fragmentov ako pre ISAM tabuľky. Podpora veľkých súborov. Lepšia kompresia indexu. Je lepšie mať štatistické rozdelenie? Lepšie a rýchlejšie auto_increment spracovanie.
Tu sú niektoré detaily a konkrétne rozdiely v implementácii:
1. InnoDB nepodporuje indexy typu FULLTEXT. 2. Tabuľky sa neukladajú v InnoDB konkrétne riadky, teda vykonať select count(*) z InnoDB prehľadá celú tabuľku, aby vypočítal, koľko riadkov obsahuje, ale MyISAM jednoducho prečíta uložené riadky. Všimnite si, že keď príkaz count(*) obsahuje kde podmienka, operácia oboch tabuliek je rovnaká. 3. Pre polia AUTO_INCREMENT typu musí byť index obsahujúci iba toto pole zahrnutý v InnoDB, ale v tabuľke MyISAM je možné vytvoriť federovaný index s inými poľami. 4. DELETE Z tabuľky InnoDB nevytvára tabuľku znova, ale maže ju riadok po riadku. 5. NAČÍTAVACIA TABUĽKA Z Operácia MASTER nefunguje pre InnoDB, riešením je najprv zmeniť tabuľku InnoDB na tabuľku MyISAM, importovať dáta a potom ich zmeniť na tabuľku InnoDB, ale nie je použiteľná pre tabuľky, ktoré používajú ďalšie funkcie InnoDB (napríklad cudzie kľúče).
Navyše, riadkový zámok tabuľky InnoDB nie je absolútny, ak MySQL nedokáže určiť rozsah na prehľadanie pri vykonávaní SQL príkazu, tabuľka InnoDB tiež uzamkne celú tabuľku, napríklad aktualizáciou Tabuľková sada num=1, kde názov je napríklad "a%"
Žiadna tabuľka nie je všemohúca, len výberom vhodného typu tabuľky pre typ podniku môžeme maximalizovať výkonnostné výhody MySQL.
MySQL Keď administrátor vytvorí databázu, tabuľka sa predvolene nastaví na typ InnoDB.
InnoDB,MyISAM Aký je rozdiel medzi týmito dvoma typmi: Typ MyISAM nepodporuje pokročilé spracovanie, ako je spracovanie transakcií, zatiaľ čo typ InnoDB áno. Tabuľky typu MyISAM kladú dôraz na výkon, ktorý dosahuje niekoľko stupňov rýchlejšie ako typ InnoDB, ale neposkytuje transakčnú podporu, zatiaľ čo InnoDB poskytuje pokročilé databázové funkcie ako transakčná podpora, cudzie kľúče a podobne.
Binárne dátové súbory typu MyISAM je možné migrovať medzi rôznymi operačnými systémami. To znamená, že ho možno priamo skopírovať z Windows systému na linux.
Upravte typ motora tabuľky:
ALTER TABLE TABLE TABLENAME ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Metóda sekvenčného prístupu Je to štandardná metóda ukladania záznamov a súborov. V porovnaní s inými úložnými enginmi má MyISAM najviac nástrojov na kontrolu a opravu tabuliek. Tabuľky MyISAM je možné komprimovať a podporujú vyhľadávanie v plnom texte. Nie sú transakčne bezpečné a nepodporujú cudzie kľúče. Ak sa niečo vráti späť, spôsobí to neúplné vrátenie a nie je atómové. Ak sa vykoná veľké množstvo popráv TheSELECT, MyISAM je lepšia voľba.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
Pre typy InnoDB, ktoré niečo podporujú, je hlavným dôvodom ovplyvňujúcim rýchlosť to, že predvolené nastavenie AUTOCOMMIT je zapnuté a program explicitne nevolá BEGIN Spustiť transakciu, čo vedie k automatickému commitu pri každom vložení, čo výrazne ovplyvňuje rýchlosť. Môžete zavolať start pred spustením SQL a viacero SQL vytvorí jednu vec (aj keď autocommit zasiahne môžu byť tiež zapnuté), čo výrazne zlepší výkon.
1. Zobraziť informácie v tabuľke, vrátane typu použitého enginu, kódovania znakov, štruktúry tabuliek a podobne
Použi tento príkaz
mysql> zobraziť vytvoriť tabuľku T1; --t1 je názov tabuľky
2. Nasledujúci príkaz je možné vykonať na prepnutie netransakčných tabuliek na transakcie (údaje sa nestrácajú), innodb tabuľky sú bezpečnejšie ako myisam tabuľky: Alter Table T1 type=innodb; --t1 je názov tabuľky
3. Tabuľku innodb nie je možné table_name príkazom repair table a myisamchk -r Ale môžeš použiť kontrolný stôl t1 a mysqlcheck [OPTIONS] databáza [tabuľky]
4. Do príkazového riadku boli pridané nasledujúce parametre na spustenie databázy mysql, aby všetky novo vydané dátové tabuľky MySQL predvolene používali transakcie ( Ovplyvňuje iba príkaz create. ) --default-table-type=InnoDB
5. Dočasná zmena predvoleného typu tabuľky je možná: set table_type=InnoDB;
MyISAM Výhody: vysoká rýchlosť, menej miesta na disku; Využitie disku v databáze alebo tabuľke je možné zistiť buď kontrolou veľkosti príslušného súboru (priečinka) operačným systémom, alebo použitím SQL príkazu ZOBRAZIŤ STAV TABUĽKY Nevýhody: Žiadny mechanizmus integrity dát, t. j. žiadna podpora transakcií a cudzích kľúčov
InnoDB Výhody: Podpora transakcií a cudzích kľúčov a kompletný mechanizmus integrity dát. ZOBRAZIŤ STAV TABUĽKY môžete použiť na kontrolu obsadenosti disku v knižnici alebo tabuľke Nevýhody: ultra pomalá rýchlosť, obsadený veľký priestor na disku; Všetky knižnice sú uložené v jednom (zvyčajne) alebo viacerých súboroch a operačný systém nedokáže určiť, koľko miesta má knižnica alebo tabuľka
BDB Výhody: Podpora transakcií, nepodporuje cudzie kľúče, pretože na základe podpory transakcií môžu byť cudzie kľúče implementované nepriamo na strane klienta (čo môže byť serverová strana koncového zákazníka, napríklad PHP), takže integrita dát je stále zaručená; Nevýhody: pomalá rýchlosť, vysoké využitie disku; Nemôžete sa dotazovať na obsadenosť priestoru v databáze alebo tabuľke cez ZOBRAZIŤ STAV TABUĽKY. Operačný systém dokáže pochopiť veľkosť príslušného priečinka knižnice alebo zodpovedajúceho súboru tabuľky, ale keďže tabuľka BDB musí vždy generovať logovací súbor a skutočná obsadenosť disku by mala obsahovať log, veľkosť knižnice alebo tabuľky je vždy menšia ako skutočný priestor zaberaný operačným systémom.
|