1/ISAM
ISAM yra aiškiai apibrėžtas ir laiko patikrintas duomenų lentelių valdymo metodas, sukurtas taip, kad duomenų bazė būtų užklausiama daug dažniau, nei atnaujinama. Dėl to ISAM greitai atlieka skaitymus ir neužima daug atminties bei saugojimo išteklių. Du pagrindiniai ISAM trūkumai yra tai, kad jis nepalaiko operacijų apdorojimo ir nėra atsparus gedimams: jei standusis diskas sugenda, duomenų failų atkurti negalima. Jei naudojate ISAM misijai svarbioms programoms, visada turite sukurti visų duomenų atsargines kopijas realiuoju laiku, o MySQL gali palaikyti tokias atsargines programas dėl savo replikavimo funkcijos.
2/InnoDB
Ji suteikia operacijų kontrolės funkciją, kuri užtikrina, kad komandų rinkinys būtų sėkmingai įvykdytas, arba įvykus bet kokiai komandos klaidai, visų komandų rezultatas atšaukiamas, galima įsivaizduoti, kad operacijų kontrolės galimybės yra labai svarbios elektroninėje bankininkystėje. COMMIT, ROLLBACK ir kitų operacijų funkcijų palaikymas. Naujausia "Mysql" versija jau planuoja pašalinti BDB palaikymą "InnoDB" naudai.
MyIASM yra nauja IASM lentelių versija su šiais plėtiniais: Perkeliamumas dvejetainiu lygiu. NULL stulpelio indeksas. Kintamųjų eilučių fragmentų yra mažiau nei ISAM lentelių. Didelių failų palaikymas. Geresnis indekso suspaudimas. Ar geriau turėti statistinį pasiskirstymą? Geresnis ir greitesnis auto_increment apdorojimas.
Toliau pateikiama keletas detalių ir konkrečių įgyvendinimo skirtumų.
1. InnoDB nepalaiko FULLTEXT tipo indeksų. 2. Lentelės neišsaugomos InnoDB konkrečios eilutės, tai yra, vykdykite select count(*) iš lentelėje, "InnoDB" nuskaito visą lentelę, kad apskaičiuotų, kiek yra eilučių, tačiau "MyISAM" tiesiog nuskaito išsaugotas eilutes. Atkreipkite dėmesį, kad kai count(*) sakinyje yra kur sąlyga, abiejų lentelių veikimas yra tas pats. 3. AUTO_INCREMENT tipo laukuose indeksas, kuriame yra tik tas laukas, turi būti įtrauktas į InnoDB, tačiau MyISAM lentelėje galima sukurti susietą indeksą su kitais laukais. 4.IŠTRINTI FROM lentelės, InnoDB nesukuria lentelės, bet ištrina ją eilutė po eilutės. 5. APKROVOS LENTELĖ IŠ MASTER operacija neveikia InnoDB, sprendimas yra pirmiausia pakeisti InnoDB lentelę į MyISAM lentelę, importuoti duomenis ir tada pakeisti juos į InnoDB lentelę, tačiau ji netaikoma lentelėms, kuriose naudojamos papildomos InnoDB funkcijos (pvz., Išoriniai raktai).
Be to, InnoDB lentelės eilutės užraktas nėra absoliutus, jei MySQL negali nustatyti nuskaitomos apimties vykdant SQL sakinį, InnoDB lentelė taip pat užrakins visą lentelę, pvz., atnaujinimą lentelės rinkinys num=1, kur pavadinimas kaip " a%"
Nė viena lentelė nėra visagalis, tik pasirinkę tinkamą lentelės tipą verslo tipui galime maksimaliai padidinti MySQL našumo pranašumus.
MySQL Kai administratorius sukuria duomenų bazę, lentelės numatytasis tipas yra InnoDB.
InnoDB, MyISAM Kuo skiriasi šie du tipai: MyISAM tipas nepalaiko išplėstinio apdorojimo, pvz., operacijų apdorojimo, o InnoDB tipas. MyISAM tipo lentelėse pabrėžiamas našumas, kuris veikia keliais laipsniais greičiau nei InnoDB tipas, tačiau neteikia operacijų palaikymo, o InnoDB teikia pažangias duomenų bazės funkcijas, tokias kaip operacijų palaikymas, išoriniai raktai ir kt.
MyISAM tipo dvejetainiai duomenų failai gali būti perkelti į skirtingas operacines sistemas. Tai yra, jį galima nukopijuoti tiesiai iš "Windows" sistemos į "Linux" sistemą.
Pakeiskite lentelės variklio tipą:
PAKEISTI TABLE tablename ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Nuosekliosios prieigos metodas Tai standartinis įrašų ir failų saugojimo būdas. Palyginti su kitais saugojimo varikliais, MyISAM turi daugumą lentelių tikrinimo ir taisymo įrankių. "MyISAM" lenteles galima suspausti ir jos palaiko viso teksto paiešką. Jie nėra saugūs operacijų atžvilgiu ir nepalaiko išorinių raktų. Jei kažkas atsukama atgal, tai sukels nepilną atšaukimą ir nėra atominis. Jei vykdoma daug egzekucijų TheSELECT, MyISAM yra geresnis pasirinkimas.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
InnoDB tipams, kurie palaiko dalykus, pagrindinė priežastis, turinti įtakos greičiui, yra ta, kad numatytasis AUTOCOMMIT nustatymas yra įjungtas ir programa aiškiai neiškviečia BEGIN Pradėkite operaciją, todėl kiekvienas įterpimas bus automatiškai patvirtintas, o tai daro didelę įtaką greičiui. Galite iškviesti pradžią prieš SQL vykdymą, o kelios SQL formos yra vienas dalykas (net jei automatinis įsipareigojimas pataiko taip pat galima įjungti), o tai labai pagerins našumą.
1. Peržiūrėkite lentelės informaciją, įskaitant naudojamo variklio tipą, simbolių kodavimą, lentelės struktūrą ir kt
Naudokite šią komandą
mysql> Rodyti sukurti lentelę T1; --t1 yra lentelės pavadinimas
2. Ši komanda gali būti vykdoma norint perjungti nesandorių lenteles į operacijas (duomenys neprarandami), innodb lentelės yra saugesnės nei myisam lentelės: Keisti lentelę T1 tipas=innodb; --t1 yra lentelės pavadinimas
3. Innodb lentelės negalima table_name su taisymo lentelės komanda ir myisamchk -r Bet jūs galite naudoti kontrolinę lentelę t1 ir mysqlcheck [OPTIONS] duomenų bazė [lentelės]
4. Šie parametrai buvo įtraukti į komandinę eilutę, kad būtų galima paleisti mysql duomenų bazę, kad visos naujai išleistos mysql duomenų lentelės būtų numatytosios operacijos ( Tai turi įtakos tik sakiniui sukurti. ) --default-table-type=InnoDB
5. Laikinai pakeisti numatytąjį lentelės tipą galima: nustatyti table_type=InnoDB;
MyISAM Privalumai: didelis greitis, mažiau vietos diske; Duomenų bazės ar lentelės disko naudojimą galima sužinoti patikrinus atitinkamo failo (aplanko) dydį operacinėje sistemoje arba naudojant SQL sakinį RODYTI LENTELĖS BŪSENĄ Trūkumai: nėra duomenų vientisumo mechanizmo, t. y. nėra operacijų ir išorinių raktų palaikymo
InnoDB Privalumai: Palaikykite operacijas ir išorinius raktus bei visišką duomenų vientisumo mechanizmą. Galite naudoti SHOW TABLE STATUS norėdami patikrinti bibliotekos ar lentelės disko užimtumą Trūkumai: itin lėtas greitis, užimta didelė disko vieta; Visos bibliotekos saugomos viename (paprastai) arba keliuose failuose, o operacinė sistema negali pasakyti, kiek vietos turi biblioteka ar lentelė
BDB Privalumai: Palaikykite operacijas, nepalaiko išorinių raktų, nes operacijų palaikymo pagrindu išoriniai raktai gali būti netiesiogiai įdiegti duomenų bazės kliento pusėje (kuri gali būti galutinio kliento serverio pusė, pvz., PHP), todėl duomenų vientisumas vis tiek garantuojamas; Trūkumai: lėtas greitis, didelis disko naudojimas; Negalite užklausti duomenų bazės ar lentelės vietos užimtumo naudodami SHOW TABLE STATUS. Operacinė sistema gali suprasti atitinkamo bibliotekos aplanko arba atitinkamo lentelės failo dydį, tačiau kadangi BDB lentelė visada turi generuoti žurnalo failą, o faktinis disko užimtumas turėtų apimti žurnalo failą, bibliotekos ar lentelės dydis visada yra mažesnis už faktinę operacinės sistemos užimamą vietą.
|