1/ISAM
ISAM on hyvin määritelty ja ajastu testattu lähestymistapa datataulujen hallintaan, joka on suunniteltu siten, että tietokantaa haetaan paljon useammin kuin sitä päivitetään. Tämän seurauksena ISAM suorittaa lukemisen nopeasti eikä vie paljon muistia ja tallennusresursseja. ISAMin kaksi suurinta haittaa ovat, ettei se tue transaktioiden käsittelyä eikä ole vikasietokykyinen: jos kovalevysi kaatuu, datatiedostoja ei voida palauttaa. Jos käytät ISAMia kriittisiin sovelluksiin, sinun täytyy aina varmuuskopioida kaikki reaaliaikaiset tietosi, ja MySQL tukee tällaisia varmuuskopiointisovelluksia replikaatioominaisuutensa ansiosta.
2/InnoDB
Se tarjoaa transaktioiden hallintatoiminnon, joka varmistaa, että joukko komentoja suoritetaan onnistuneesti, tai kun komentovirhe ilmenee, kaikkien komentojen tulos perutaan, voidaan kuvitella, että transaktioiden hallintakyky on erittäin tärkeä e-pankkitoiminnassa. Tuki COMMIT-, ROLLBACK- ja muille transaktiotoiminnoille. Uusin Mysql-versio suunnittelee jo BDB:n tuen poistamista InnoDB:n hyväksi.
MyIASM on uusi versio IASM-taulukoista, jossa on seuraavat laajennukset: Kannettavuus binääritasolla. NULL-sarakkeen indeksi. Muuttujariveillä on vähemmän fragmentteja kuin ISAM-taulukoissa. Tuki suurille tiedostoille. Parempi indeksin pakkaus. Onko parempi käyttää tilastollista jakaumaa? Parempi ja nopeampi auto_increment käsittely.
Tässä on joitakin yksityiskohtia ja konkreettisia toteutuksen eroja:
1. InnoDB ei tue FULLTEXT-tyyppisiä indeksejä. 2. Taulukoita ei tallenneta InnoDB:hen tietyt rivit, eli suorita valitse count(*) joukosta InnoDB skannaa koko taulukon laskeakseen, kuinka monta riviä on, mutta MyISAM lukee vain tallennetut rivit ulos. Huomaa, että kun count(*)-lause sisältää missä ehto, molempien taulukoiden toiminta on sama. 3. AUTO_INCREMENT-tyyppisille kentille indeksi, jossa on vain kyseinen kenttä, täytyy sisällyttää InnoDB:hen, mutta MyISAM-taulukossa on mahdollista luoda federoitu indeksi muiden kenttien kanssa. 4.POISTA FROM-taulu InnoDB ei luo taulukkoa uudelleen, vaan poistaa sen rivi riviltä. 5. LATAA TAULU MASTER-operaatio ei toimi InnoDB:ssä, ratkaisu on vaihtaa ensin InnoDB-taulu MyISAM-tauluun, tuoda data ja sitten muuttaa se InnoDB-tauluun, mutta se ei sovellu tauluihin, jotka käyttävät lisäominaisuuksia InnoDB:ssä (kuten vieraita avaimia).
Lisäksi InnoDB-taulun rivilukitus ei ole absoluuttinen; jos MySQL ei pysty määrittämään skannattavaa laajuutta SQL-lausetta suorittaessa, InnoDB-taulukko lukitsee myös koko taulun, kuten päivityksen taulukko num=1, missä nimi kuten " a%"
Mikään taulukko ei ole kaikkivaltias, vain valitsemalla sopivan taulutyypin liiketoimintatyypille voimme maksimoida MySQL:n suorituskykyedut.
MySQL Kun ylläpitäjä luo tietokannan, taulukko on oletuksena InnoDB-tyyppi.
InnoDB, MyISAM Mikä on ero näiden kahden tyypin välillä: MyISAM-tyyppi ei tue edistynyttä käsittelyä, kuten transaktioiden käsittelyä, kun taas InnoDB-tyyppi tukee sitä. MyISAM-tyypin taulukot korostavat suorituskykyä, joka toimii useita asteita nopeammin kuin InnoDB-tyyppi, mutta ei tarjoa transaktiotukea, kun taas InnoDB tarjoaa kehittyneitä tietokantaominaisuuksia, kuten transaktiotukea, vieraita avaimia jne.
MyISAM-tyyppisiä binääritiedostoja voidaan siirtää eri käyttöjärjestelmien välillä. Eli sen voi kopioida suoraan Windows-järjestelmästä Linux-järjestelmään.
Muokkaa taulukon moottorityyppiä:
ALTER TAULUN taulukkonimi ENGINE = MyISAM ;
MyISAM:,它是基于传统的ISAM类型,ISAM是Indexed Peräkkäinen pääsymenetelmä Se on standardimenetelmä tietueiden ja tiedostojen tallentamiseen. Verrattuna muihin tallennusmoottoreihin, MyISAMilla on eniten työkaluja taulukoiden tarkistamiseen ja korjaamiseen. MyISAM-taulukot voidaan pakata ja ne tukevat koko tekstihakua. Ne eivät ole transaktiollisesti turvallisia eivätkä tue ulkomaisia avaimia. Jos jokin palautetaan, se aiheuttaa epätäydellisen palautuksen eikä ole atominen. Jos suoritetaan suuri määrä teloituksia TheSELECT, MyISAM on parempi valinta.
InnoDB:这种类型是事务安全的.它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表,
InnoDB-tyypeissä, jotka tukevat asioita, nopeuteen vaikuttava pääasiallinen syy on se, että AUTOCOMMIT-oletusasetus on päällä eikä ohjelma nimenomaisesti kutsu BEGINiä Aloita transaktio, mikä johtaa automaattiseen sitoutumiseen jokaisesta lisäyksestä, mikä vaikuttaa merkittävästi nopeuteen. Voit kutsua start-nappia ennen SQL:n suorittamista, ja useat SQL:t muodostavat yhden asian (vaikka automaattinen sitoutuminen osuisikin voidaan myös kytkeä päälle), mikä parantaa suorituskykyä merkittävästi.
1. Katso taulukkotiedot, mukaan lukien käytetyn moottorin tyyppi, merkkikoodaus, taulukkorakenne jne
Käytä tätä komentoa
MySQL> näytä luo taulukko t1; --t1 on taulukon nimi
2. Seuraava komento voidaan suorittaa vaihtamaan ei-transaktionaalisia tauluja transaktioiksi (data ei katoa), innodb-taulut ovat turvallisempia kuin myisam-taulut: Muuta taulukko T1 type=innodb; --t1 on taulukon nimi
3. Innodb-taulukkoa ei voi table_name korjaustaulukon komennolla ja myisamchk -r Mutta voit käyttää tarkistustaulukkoa t1 ja mysqlcheck [OPTIONS] tietokanta [taulukot]
4. Seuraavat parametrit on lisätty komentoriville mysql-tietokannan käynnistämiseksi, jotta kaikki uudet mysql-datataulukot oletuksena käyttävät transaktioita ( Se vaikuttaa vain create-lauseeseen. ) --default-table-type=InnoDB
5. Oletustaulutyypin väliaikainen muuttaminen voidaan tehdä seuraavasti: setti table_type=InnoDB;
MyISAM Edut: nopea nopeus, vähemmän levytilaa; Tietokannan tai taulukon levyn käyttö voidaan selvittää joko tarkistamalla käyttöjärjestelmän vastaavan tiedoston (kansion) koko tai käyttämällä SQL-lausetta SHOW TABLE STATUS Miinukset: Tietojen eheysmekanismia ei ole, eli ei tukea transaktioille ja vieraille avaimille
InnoDB Edut: Tue transaktioita ja vierasavaimia sekä täydellinen datan eheysmekanismi. Voit käyttää NÄYTÄ TAULUN TILAA tarkistaaksesi kirjaston tai taulukon levyn täyttymisen Haittoja: erittäin hidas nopeus, suuri levytila käytössä; Kaikki kirjastot tallennetaan yhteen (yleensä) tai useampaan tiedostoon, eikä käyttöjärjestelmä pysty kertomaan, kuinka paljon tilaa kirjastossa tai taulukossa on
BDB Edut: Tue transaktioita, mutta ei tue vieraita avaimia, koska transaktiotuen perusteella vieraat avaimet voidaan toteuttaa epäsuorasti tietokannan asiakaspuolella (joka voi olla loppuasiakkaan palvelinpuolella, kuten PHP), joten tietojen eheys on silti taattu; Haittoja: hidas nopeus, korkea levyn käyttö; Et voi kysyä tietokannan tai taulun tilankäyttöä NÄYTÄ TAULUN TILA -toiminnolla. Käyttöjärjestelmä voi ymmärtää vastaavan kansion tai taulukon tiedoston koon, mutta koska BDB-taulun täytyy aina tuottaa lokitiedosto ja varsinaiseen levyn käyttöalueeseen kuuluu lokitiedosto, kirjaston tai taulun koko on aina pienempi kuin käyttöjärjestelmän varsinainen tila.
|