MySQLdatu-baseak kudeatzeko sistema bat da,MySQL AB enpresak lizentzia bikoitzpean garatzen duena. Alde batetikGPL lizentzia eskaintzen du, baina beraien produktuetan erabili nahi duten enpresentzako lizentzia erosteko aukera eskaintzen du.
Gaur egun, lau milloi ordenagailutan baino gehiagotan instalatuta aurkitu dezakegu[1], bai ordenagailu pertsonaletan software aske bezala erabilita edo produktu komertzialen osagai bezala enpresetako lizentziaren bidez.
SQL lengoaia azaldu zenetik, estandar bezala hartu da erlaziozkodatu basetan, 1986. urtean azaldu zen lehen estandarra eta horren ostean espezifikazio anitz agertu dira (SQL:92, SQL:99, SQL:2003). MySQLAB enpresaren ideia izan zen, SQL estandarra betetzea helburu zuen, arintasun, erabilgarritasun eta fidagarritasunik galdu gabe.
ODBC interfaze berezi bat MySQL datubaserako ere badago,MyODBC deritzona. Honek ODBC interfazea inplementatzen duen edozein programazio lengoaiari MySQL datubasearekin komunikatzea ahalbidetzen dio.
DBKS egiturarekin jarraituz, geruza logikoan biltegiratze sistemak erabiltzen ditu MySQL-ek. Hau da, MySQL-k funtzionatu ahal izateko motoreak erabiltzen ditu. Nagusiki horietako bi erabiltzen dira: MyISAM eta innoDB. Baina gehiago daude: Merge, Berkeley DB, Memory, Example, Federated, Archive, CSV, Blackhole...[1]
Besterik ezeko biltegiratze motorea da.MyISAM-eko taula bakoitza 3 fitxategitan gordetzen da diskoan. Fitxategi hauen izenak taularen izen bera dute baina luzapena aldatzen zaie zein motakoak diren jakiteko: .frm luzapenak taularen egitura gordetzen du, datuak .myd fitxategietan gordetzen dira eta indizeek .myi luzapena dute.Datuak gordetzen diren moduagatik sistema eragileko independenteak dira.232 errenkada onartzen ditu gehienez taula bakoitzean.64 indize definitu daitezke gehienez taula batean.Eguneraketa konkurrenteak onartzen ditu.MyISAM tauletako indizeeek B-zuhaitza (B-tree) moduko egitura erabiltzen dute.Datu basea ondorengo egoeretan hondatu daiteke:
Prozesuko idazketa baten erdian hiltzen bada.
Ordenagailua itzaltzen bada
Hardware akatsak
Kanpoko programa batek eta zerbitzariak aldi berean datuak aldatzen badituzte
InnoDB motorraAISI transakzioak betetzeko diseinatuta dago. Commit, rollback eta crash-recovery aukerak eskaintzen ditu erabiltzailearen datuak babesteko. Datuen osotasuna bermatzeko gako arrotzen murriztapena betetzeko ahalmena du. InnoDB-k erabiltzaile datuak clustered index-etan gordetzen ditu gako nagusiko galdera orokorretan sarrera/irteerako eragiketak gutxitzeko.
InnoDB datu handiekin lan egin behar denean eraginkortasuna lortzeko diseinatuta dago. PUZaren erabilera eraginkorra ere egiten du. Datuentzako bere buffer eta cache propioak mantentzen ditu memoria nagusian. InnoDB-k taulak eta indizeak taula espazio batean gordetzen ditu hainbat fitxategi izan daitezkeelarik. Horrela taula bat 2GB baino handiagoa izan daiteke fitxategi sistema batzuetako muga gaindituz.
Ez da gomendagarriaNFS fitxategi sistemarekin batera motore hau erabiltzea.
InnoDB-n erabiltzailearen edozein eragiketa transakzio baten barruan gertatzen da. Autocommit modua aktibatuta badago SQL galdera bakoitza transakzio bat bezala tratatzen da. Galdera ondo exekutatzen denean commit egiten da errorerik ez bada gertatu, bestela rollback edo commit egiten da errorearen arabera.
InnoDB-ek ere indizeak B-Zuhaitzetan gordetzen ditu non indizeen egiturak hostoetan gordetzen diren. Zuhaitzak %50-etik %93-ra beteta egon daitezke. InnoDB motorraren helburua transakzioetarako 2 fasetako sarrailak eta eraginkortasuna konbinatzea da. InnoDBk blokeaketa lerro mailan egiten ditu eta irakurketak sarrailarik erabili gabe egiten dira besterik ezean.