Τι είναι ένα αρχείο MYI;
Το MYI είναι επίσης γνωστό ως το αρχείο ευρετηρίου MySQL MyISAM. Χρησιμοποιείται για την αποθήκευση ευρετηρίων για τον πίνακα MyISAM από τη MySQL. Το ευρετήριο βάσης δεδομένων MySQL ορίζει τη δομή του πίνακα και περιέχει τον μηχανισμό ελέγχου για τον έλεγχο της ακεραιότητας των πινάκων.
Μορφή αρχείου MYI
Το αρχείο MYI έχει δύο μέρη, την κεφαλίδα και τις βασικές τιμές.
Κεφαλίδα MYI
Η κεφαλίδα περιέχει πληροφορίες σχετικά με τις επιλογές, τα μεγέθη αρχείων και τα κλειδιά. Τα κλειδιά στη MySQL δημιουργούνται με μια εντολή όπως
CREATE [UNIQUE] INDEX.
Τα αρχεία που διαβάζουν και γράφουν αρχεία MYI βρίσκονται στον κατάλογο ./myisam. Έχει τα εξής αρχεία:
- mi_open.c: Αυτό το αρχείο περιέχει τις ρουτίνες που γράφουν κάθε ενότητα της κεφαλίδας.
- mi_create.c: Αυτό το αρχείο έχει τις ρουτίνες που καλούν τις ρουτίνες mi_open.c.
- myisamdef.h: Αυτό το αρχείο έχει τους ορισμούς της δομής.
Η κεφαλίδα έχει τις ακόλουθες ενότητες:
- κατάσταση: Η κατάσταση γράφεται από mi_open.c, mi_state_info_write(). Αυτή η δομή εμφανίζεται μία φορά στο αρχείο.
- βάση: Η βάση γράφεται από mi_open.c, mi_base_info_write(). Το MI_BASE_INFO είναι η αντίστοιχη δομή για τη βάση στο myisamdef.h. Αυτή η δομή εμφανίζεται μία φορά στο αρχείο.
- keydef: Το keydef γράφεται από mi_open.c, mi_keydef_write(). Το MI_KEYDEF είναι η αντίστοιχη δομή για το keydef στο myisamdef.h. Είναι μια δομή πολλαπλών εμφανίσεων που εμφανίζεται για κάθε ευρετήριο.
- recinfo: Το recinfo γράφεται από mi_open.c, mi_recinfo_write(). Το MI_COLUMNDEF είναι η αντίστοιχη δομή για το recinfo στο myisamdef.h. Είναι μια δομή πολλαπλών εμφανίσεων που εμφανίζεται μία φορά από κάθε πεδίο που εμφανίζεται σε ένα κλειδί.
Βασικές τιμές
Οι σελίδες στη MySQL ονομάζονται μπλοκ. Οι βασικές τιμές είναι σε μπλοκ. Ένα μπλοκ περιέχει πληροφορίες από ένα μόνο ευρετήριο. Κάθε κλειδί περιέχει όλα τα περιεχόμενα όλων των στηλών. Το κανονικό μήκος μπλοκ είναι 0x0400 (1024) byte. Ο δείκτης έχει έναν αριθμό σταθερού μεγέθους (4 byte) για πίνακες σταθερής σειράς που περιέχει έναν αριθμό σειράς. Εάν το κλειδί είναι μηδενικό, τότε το byte είναι 0x00. Ένα κανονικό μπλοκ είναι γεμάτο τουλάχιστον 65% και είναι συνήθως γεμάτο κατά 80%.
Το αρχείο myisamdef.h περιέχει τις ακόλουθες πληροφορίες που εκφράζονται σε σταθερές. Ο μέγιστος αριθμός κλειδιών είναι 32 (MI_MAX_KEY) και ο μέγιστος αριθμός τμημάτων σε ένα κλειδί είναι 16 (MI_MAX_KEY_SEG). Το μέγιστο μήκος του κλειδιού είναι 500 (MI_MAX_KEY_LENGTH). Το μέγιστο μήκος του μπλοκ είναι 16384 (MI_MAX_KEY_BLOCK_LENGTH).