Hvad er MYD-filformatet?
En .myd-fil er række-data-komponenten i en MySQL MyISAM-tabel. MyISAM gemmer hver tabel som tre søskendefiler, der deler det samme grundnavn: table.frm indeholder skemadefinitionen, table.MYD indeholder denne fil - de faktiske rækkeposter - og table.MYI indeholder indeksene og engine-metadata.
.myd-filen indeholder kun rå binære rækkedata uden egne kolonnedefinitioner. Den kan ikke læses isoleret; .frm-definitionsfilen og en kørende MySQL- eller MariaDB-server er påkrævet for at fortolke posterne. Rækker gemmes i et af tre interne layouts: FIXED (alle kolonner har fast bredde), DYNAMIC (standard når VARCHAR- eller BLOB-kolonner er til stede), eller COMPRESSED (skrivebeskyttede tabeller pakket offline med myisampack).
Som standard er filstørrelsen begrænset til 4 GB, men dette kan hæves til op til 256 TB ved at indstille tabelindstillingerne MAX_ROWS og AVG_ROW_LENGTH. Slettede rækker genvindes ikke med det samme - de forbliver som huller på en fri liste, indtil OPTIMIZE TABLE køres. En valgfri live-kontrolsum (CHECKSUM=1) lader motoren spore integritet på rækkeniveau; værktøjet myisamchk og SQL-sætningerne CHECK TABLE / REPAIR TABLE arbejder mod den tilhørende .MYI for at diagnosticere og reparere korruption.
MyISAM var standard MySQL-storagemotoren fra MySQL 3.23 (omkring 2001) indtil MySQL 5.5 (2010), hvor InnoDB blev den nye standard. Ældre databaser og arbejdsbelastninger med flest læsninger producerer stadig .myd-filer i dag, understøttet af både MySQL og MariaDB.
Sikkerhed og tryghed
RISIKO: MEDIUMEn .MYD er inerte data - den indeholder ingen eksekverbar kode - men den bærer de samme operationelle og privatlivsmæssige risici som enhver databasefil. Operationelt: kopiér, flyt eller slet aldrig .MYD-filer, mens MySQL-serveren kører, og adskil aldrig en .MYD fra dens matchende .frm og .MYI, og bland ikke filer på tværs af inkompatible serverversioner - dette vil korrumpere eller «crashe» tabellen. Privatlivsmæssigt indeholder .MYD tabellens faktiske rækker i klartekst på disken (MyISAM har ingen kryptering), så en lækket .MYD er et databrud, der eksponerer alt, hvad tabellen gemte - brugeroplysninger, e-mails, PII. Arbejd altid på kopier og behandl den som den følsomme database, den er.
Formatdetaljer
kort fortaltProgrammer der åbner MYD-filer
Tekniske detaljer
dyb specifikation| Filrolle | Gemmer rå rækkedata for én MyISAM-tabel; indeholder intet skema, indekser eller engine-metadata |
| Ledsagefiler | Altid parret med `table.frm` (skema) og `table.MYI` (indekser) i MySQL-datamappen; de tre filer deler det samme grundnavn |
| Rækkeformat | FIXED (kolonner med fast bredde), DYNAMIC (variabel længde; standard når VARCHAR- eller BLOB-kolonner er til stede), eller COMPRESSED (skrivebeskyttet, pakket med myisampack) |
| Byte-orden | Little-endian |
| Kodning | Binær - rå binær post-heap, ingen tekstkodning |
| Filsignatur | Ingen faste magic bytes eller læsbar ASCII-signatur; identificeres ved filendelse og tilstedeværelsen af søskendefilerne .frm og .MYI |
| Standard filstørrelsesgrænse | 4 GB pr. tabeldatafil |
| Maksimal filstørrelse | Op til 256 TB, konfigureret via MAX_ROWS og AVG_ROW_LENGTH tabelindstillinger ved tabeloprettelse |
| Håndtering af slettede rækker | Slettede rækker efterlader huller på en intern fri liste; plads genvindes ved at køre OPTIMIZE TABLE |
| Komprimering | Ingen som standard; skrivebeskyttede tabeller kan pakkes offline med myisampack for at producere en komprimeret, skrivebeskyttet variant |
| Kryptering | Ingen indbygget kryptering på tabelniveau - en kendt MyISAM-begrænsning sammenlignet med InnoDB |
| Kontrolsum og integritet | Valgfri live-kontrolsum aktiveret med CHECKSUM=1 tabelindstilling; integritetsreparation via myisamchk, CHECK TABLE eller REPAIR TABLE |
| MIME-type | application/octet-stream |
| Platformunderstøttelse | Cross-platform: Linux, Windows, macOS, FreeBSD - overalt hvor MySQL eller MariaDB kører |
| Afløst af | InnoDB .ibd-filer til transaktionelle arbejdsbelastninger; InnoDB blev standard MySQL-storagemotor i MySQL 5.5 (2010) |
| Udgivet | 2001 (MyISAM became the default MySQL engine in MySQL 3.23) |
| Seneste version | Still produced by any MySQL/MariaDB table using ENGINE=MyISAM (legacy default before InnoDB took over in MySQL 5.5, 2010) |
| Specifikation | dev.mysql.com |
MYD-konverteringer
Fællesskabets Q&A
spurgt af brugereIngen spørgsmål endnu - vær den første til at spørge om MYD-filer.