viimeisin muutos heinäkuu 10, 2020

Tässä luvussa puhutaan MySQL:n tallennusmoottoreista.

Tallennusmoottori on ohjelmistomoduuli, jota tietokannanhallintajärjestelmä käyttää luodakseen, lukeakseen ja päivittääkseen tietoja tietokannasta. MySQL:ssä on kahdenlaisia tallennusmoottoreita: transaktionaalisia ja ei-transaktionaalisia.

MySQL 5.5:ssä ja uudemmissa versioissa oletustallennusmoottori on InnoDB.Ennen versiota5.5 MySQL:n oletustallennusmoottori oli MyISAM. Oikean tallennusmoottorin valinta on tärkeä strateginen päätös, joka vaikuttaa tulevaan kehitykseen. Tässä opetusohjelmassa käytämme MyISAM-, InnoDB-, Memory- jaCSV-tallennusmoottoreita. Jos olet uusi MySQL-käyttäjä ja opiskelet MySQL-tietokannanhallintajärjestelmää, tämä ei ole suuri huolenaihe. Jos suunnittelet tuotantotietokantaa, asiat muuttuvat monimutkaisemmiksi.

Luettelo tallennuskoneista

MySQL:n tukemat tallennuskoneet:

  • InnoDB
  • MyISAM
  • Muisti
  • CSV
  • Merge
  • Archive
  • Federated
  • Blackhole
  • Example

InnoDB on yleisimmin käytetty tallennusmoottori, jolla on transaktiotuki. Se on ACID-yhteensopiva tallennusmoottori. Se tukee rivitason lukitusta, kaatumisen palautusta ja monen version samanaikaisvalvontaa. Se on ainoa moottori, joka tarjoaa vieraan avaimen referentialintegrity-rajoituksen. Oracle suosittelee InnoDB:n käyttöä taulukoissa lukuun ottamatta erikoistapauksia.

MyISAM on alkuperäinen tallennusmoottori. Se on nopea tallennusmoottori.Se ei tue transaktioita. MyISAM tarjoaa table-levellocking-toiminnon. Sitä käytetään lähinnä Webissä ja tietovarastoinnissa.

Muistitallennusmoottori luo taulukot muistiin. Se on nopeinmoottori. Se tarjoaa taulukkotason lukituksen. Se ei tue transaktioita.Memory storage engine sopii väliaikaisten taulujen luomiseen tai nopeisiin hakuihin.Tiedot menetetään, kun tietokanta käynnistetään uudelleen.

CSV tallentaa tiedot CSV-tiedostoihin. Se tarjoaa suurta joustavuutta, koska tässä muodossa olevat tiedot on helppo integroida muihin sovelluksiin.

Merge toimii taustalla oleviin MyISAM-tauluihin. Yhdistelmätaulukot helpottavat suurten tietomäärien hallintaa. Se ryhmittelee loogisesti sarjan identtisiä MyISAM-tauluja ja viittaa niihin yhtenä objektina.Hyvä tietovarastoympäristöissä.

Arkiston tallennusmoottori on optimoitu nopeaan lisäykseen. Sepakkaa tiedot, kun niitä lisätään. Se ei tue transaktioita. Se on ihanteellinen suurten, harvoin viitattujen historiallisten, arkistoitujen tietomäärien tallentamiseen ja hakemiseen.

Blackhole-tallennusmoottori hyväksyy mutta ei tallenna tietoja. Nouto palauttaa aina tyhjän joukon. Toiminnallisuutta voidaan käyttää hajautetussa tietokantasuunnittelussa, jossa data replikoidaan automaattisesti, mutta sitä ei tallenneta paikallisesti. Tätä tallennusmoottoria voidaan käyttää suorituskykytesteihin tai muuhun testaukseen.

Federoitu tallennusmoottori tarjoaa mahdollisuuden erottaa MySQL-palvelimet toisistaan luodakseen yhden loogisen tietokannan monesta fyysisestä palvelimesta.Paikallisella palvelimella tehdyt kyselyt suoritetaan automaattisesti etäällä oleviin (federoituihin) taulukoihin. Paikallisiin taulukoihin ei tallenneta tietoja.se on hyvä hajautettuihin ympäristöihin.

mysql> SHOW ENGINES\G*************************** 1. row *************************** Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keysTransactions: YES XA: YES Savepoints: YES*************************** 2. row *************************** Engine: CSV Support: YES Comment: CSV storage engineTransactions: NO XA: NO Savepoints: NO...

Komento SHOW ENGINES näyttää kaikki käytettävissä olevat moottorit, joita palvelin tukee.

Oikean moottorin valitseminen

Mikään tallennusmoottori ei ole ihanteellinen kaikissa olosuhteissa. Jotkut toimivat parhaiten tietyissä olosuhteissa ja toimivat huonommin muissa tilanteissa. On olemassa kompromisseja, jotka on otettava huomioon. Turvallisempi ratkaisu vaatii enemmän resursseja; se voi olla hitaampi, vaatia enemmän CPU-aikaa ja levytilaa. MySQL on erittäin joustava, koska se tarjoaa useita erilaisia tallennusmoottoreita. Jotkin niistä, kuten Archive-moottori, on luotu käytettäväksi erityistilanteissa.

Joissakin tapauksissa vastaus on selvä. Aina kun olemme tekemisissä joidenkin maksujärjestelmien kanssa, meidän on käytettävä turvallisinta ratkaisua. Meillä ei ole varaa menettää näin arkaluonteisia tietoja. InnoDB on oikea ratkaisu. Jos haluamme täystekstihakua, voimme valita joko MyISAM- tai InnoDB-tietokannan. Ainoastaan InnoDB tukee vierasavainten referential integrity -rajoitusta, ja jos aiomme käyttää tätä rajoitusta, valinta on selvä.

Tallennusmoottoreiden määrittäminen ja muuttaminen

Tallennusmoottori määritetään taulua luotaessa.

mysql> CREATE TABLE Cars(Id INTEGER PRIMARY KEY, Name VARCHAR(50), -> Cost INTEGER) ENGINE='MyISAM';

Avainsanalla ENGINE määritetään kyseiseen tauluun käytettävä tallennusmoottori.

Jos tallennuskonetta ei määritetä nimenomaisesti, käytetään oletustallennuskonetta. Ennen MySQL 5.5:tä oletustallennusmoottori oli MyISAM. MySQL 5.5:n ja uudempien versioiden oletustallennusmoottori on InnoDB.

Muuttaminen toiseen tallennuskoneeseen on mahdollista. Huomaa, että suuren taulukon siirtäminen saattaa kestää kauan. Myös taulukoita siirrettäessä saattaa tulla ongelmia. Joitakin ominaisuuksia ei ehkä tueta molemmissa taulukoissa.

mysql> SELECT ENGINE FROM information_schema.TABLES -> WHERE TABLE_SCHEMA='mydb' -> AND TABLE_NAME='Cars';+--------+| ENGINE |+--------+| InnoDB |+--------+1 row in set (0,05 sec)

Tällä SQL-lausekkeella selvitetään mydb-tietokannan Cars-taulussa käytetty tallennuskone. Voisimme käyttää myös SELECT CREATE TABLE Cars SQL-lausetta. information_schema on taulukko, johon tallennetaan teknisiä tietoja taulukoistamme.

mysql> ALTER TABLE Cars ENGINE='MyISAM';

Tämä SQL-lause vaihtaa Cars-taulun tallennuskoneeksi MyISAM.

mysql> SELECT ENGINE FROM information_schema.TABLES -> WHERE TABLE_SCHEMA='mydb' -> AND TABLE_NAME='Cars';+--------+| ENGINE |+--------+| MyISAM |+--------+1 row in set (0,00 sec)

Taulun tallennusmoottori on nyt MyISAM.

MySQL-oppaan tässä osassa olemme käsitelleet tallennusmoottoreita.

Articles

Vastaa

Sähköpostiosoitettasi ei julkaista.