Privacy Policy Cookie Policy Terms and Conditions MyISAM - Wikipedia

MyISAM

Da Wikipedia, l'enciclopedia libera.

MyISAM è il tipo di tabella predefinito di MySQL. Esso utilizza la struttura ISAM e deriva da un tipo più vecchio, oggi non più utilizzato, che si chiamava appunto ISAM. È un motore di immagazzinamento dei dati estremamente veloce e richiede poche risorse, sia in termini di memoria RAM, sia in termini di spazio su disco. Il suo limite principale rispetto a BDB e, soprattutto, InnoDB, consiste nel mancato supporto delle transazioni.

Indice

[modifica] Struttura dei file

Ogni tabella di tipo MyISAM è registrata in tre file differenti. Ognuno ha un nome costituito da due parti: il nome di base è uguale al nome della tabella, mentre l'estensione indica la funzione del file. Ad esempio, una tabella `mia_tabella` sarà composto da tre file chiamati:

  • mia_tabella.frm
  • mia_tabella.myi
  • mia_tabella.myd

Il file .frm rappresenta la struttura della tabella: dimensioni e tipo di ogni colonna, indici, ecc. Il file .MYI (MYIndex) contiene gli indici. Il file .MYD (MYData) contiene i dati veri e propri.

[modifica] Spazio richiesto dagli indici

Gli indici di una tabella MyISAM possono essere compressi; per fare ciò, impostare la proprietà PACKED_KEYS=1. Questo aiuta soprattutto quando si hanno diversi indici numerici interi che hanno un uguale prefisso.

Gli indici stringa sono sempre compressi. La loro compressione aiuta soprattutto se vi sono molte stringhe con un uguale prefisso.

Gli indici di MyISAM normalmente sono di tipo B-Tree. Per calcolare lo spazio massimo richiesto dagli indici B-Tree non compressi, si può utilizzare la seguente formula:

(dimensioni del dato + 4) / 0.67

[modifica] Formati dei dati

MyISAM può registrare i dati in tre differenti formati:

  • fixed;
  • dynamic;
  • compressed.

I primi due vengono scelti automaticamente da MySQL a seconda dei tipi di colonne utilizzati. Per creare una tabella compressed, invece, occorre utilizzare il programma myisampack.

[modifica] Fixed

Questo è il formato di default. Viene utilizzato se non vi sono colonne a lunghezza variabile (tipi VARCHAR, BLOB, o TEXT). In questo caso ogni record viene registrato utilizzando un numero fisso di byte.

Questo è il formato più semplice ed è anche il più veloce e il più sicuro. La deframmentazione di una tabella con formato fisso è necessaria solo se si desidera recuperare spazio su disco dopo aver eliminato un numero di record molto elevato.

[modifica] Dynamic

Questo formato viene utilizzato se nella tabella sono presenti colonne a lunghezza variabile o se la tabella viene creata con l'opzione ROW_FORMAT=DYNAMIC.

Questo formato è più complesso rispetto a Fixed. Ciò è dovuto al fatto che ogni record può avere dimensioni diverse; un record potrebbe addirittura essere diviso fisicamente in più parti, se le sue dimensioni aumentano in seguito a un UPDATE. Per limitare questo problema, è possibile deframmentare la tabella con il comando OPTIMIZE TABLE.

Ogni record è delimitato da una sequenza di bit corrispondenti a una stringa vuota. I valori di 4 byte o meno non hanno mai dimensioni variabili.

Il vantaggio del formato Dynamic consiste nell'occupare molto meno spazio di una tabella in formato Fixed. Per calcolare approssimativamente lo spazio richiesto da un singolo record dinamico, si può utilizzare la seguente formula:

3
+ (numero di colonne + 7) / 8 
+ (numero di colonne CHAR)
+ (dimensione compressa delle colonne numeriche)
+ (lunghezza delle stringhe)
+ (numero di colonne NULL + 7) / 8

Occorre poi aggiungere 6 byte per ogni collegamento. Un collegamento si crea quando un UPDATE aumenta le dimensioni di un record, che quindi deve dividersi in più locazioni sul disco. Ogni nuova locazione misura almeno 20 byte, quindi potrebbe contenere l'espansione di più record.

[modifica] Compressed

Una tabella compressa può essere creata solo con la utility myisampack. La tabella potrà poi essere decompressa solo con la utility myisamchk. Entrambi i programmi vengono distribuiti con tutte le edizioni di MySQL.

Le tabelle Compressed sono a sola lettura. I dati occupano molto poco spazio. Questo aiuta nel caso di dischi molto lenti, come per esempio CD-ROM. Può contenere sia dati a lunghezza fissa, sia a lunghezza variabile.

[modifica] Come creare una tabella di tipo MyISAM

La sintassi per creare una tabella MyISAM è la seguente:

CREATE TABLE prova (pk1 INT, .....) ENGINE = MyISAM;
CREATE TABLE prova (pk1 INT, .....) TYPE = MyISAM;

Per convertire una tabella già esistente in MyISAM:

ALTER TABLE prova ENGINE = MyISAM;
ALTER TABLE prova TYPE = MyISAM;

È consigliato utilizzare la parola ENGINE poiché TYPE (utilizzato nelle vecchie versioni di MySQL) è in disuso.

MyISAM è uno dei motori sempre presenti (insieme a MEMORY e Merge) ed è il tipo di tabella predefinito al momento in cui MySQL viene installato. Essendo predefinito, si può evitare di utilizzare la clausola ENGINE. Siccome però il tipo predefinito può mutare, per esserne certi si può eseguire:

SHOW ENGINES

[modifica] Voci correlate

[modifica] Collegamenti esterni

THIS WEB:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia 2006:

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - be - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - closed_zh_tw - co - cr - cs - csb - cu - cv - cy - da - de - diq - dv - dz - ee - el - eml - en - eo - es - et - eu - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gd - gl - glk - gn - got - gu - gv - ha - haw - he - hi - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mg - mh - mi - mk - ml - mn - mo - mr - ms - mt - mus - my - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - rm - rmy - rn - ro - roa_rup - roa_tara - ru - ru_sib - rw - sa - sc - scn - sco - sd - se - searchcom - sg - sh - si - simple - sk - sl - sm - sn - so - sq - sr - ss - st - su - sv - sw - ta - te - test - tet - tg - th - ti - tk - tl - tlh - tn - to - tokipona - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu