|  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> PHP /MySQL Programmering >> Content

    Lagerar MySQL varje tabell i en separat fil?

    Nej, MySQL lagrar inte nödvändigtvis varje tabell i en separat fil. Hur MySQL -lagrar -tabeller beror på den använda lagringsmotorn.

    Här är en uppdelning av hur olika lagringsmotorer hanterar tabelllagring:

    1. InnoDB (vanligast - standard från MySQL 5.5)

    * `innoDB_File_per_Table` Konfiguration: Den här inställningen bestämmer hur InnoDB lagrar tabelldata och index.

    * `innodb_file_per_table =on` (rekommenderas): Varje tabell har sin egen ".IBD` -fil för data och index. Metadata (tabelldefinition) lagras fortfarande i den delade "ibdata1" -filen. Detta är den föredragna inställningen eftersom:

    * Det gör `droppbord ',' trunkera tabell 'och' optimera tabell '-operationerna snabbare.

    * Det möjliggör enklare återhämtning av enskilda tabeller.

    * Det minskar risken för korruption som påverkar flera tabeller.

    * Det återvinner utrymme när ett bord tappas (till skillnad från den delade tabellområdet).

    * `innodb_file_per_table =off` (rekommenderas inte): Data och index för alla InnoDB -tabeller lagras i ett delat tabellområde (vanligtvis `ibdata1`). Metadata (tabelldefinition) lagras fortfarande i den delade "ibdata1" -filen. Den här inställningen är starkt avskräckt om du inte har ett mycket specifikt och övertygande skäl för att använda den. Det är svårare att hantera, återhämta sig och krympa tabellen.

    * `.frm` filer: InnoDB skapar också en ".frm" -fil för varje tabell. Den här filen innehåller tabellens metadata (tabelldefinition). Detta är en historisk artefakt och ".frm" -filer blir mindre viktiga eftersom metadata flyttas in i datadboken som hanteras direkt av servern.

    2. Myisam (äldre motor, mindre vanligt nu):

    * Myisam lagrar varje tabell i tre separata filer:

    * `.frm`:tabelldefinition (som InnoDB).

    * `.MYD`:Datafil (innehåller tabellens data).

    * `.Myi`:Indexfil (innehåller tabellens index).

    3. Andra lagringsmotorer:

    * Andra lagringsmotorer (t.ex. minne, arkiv, CSV) har sina egna lagringsmekanismer. Till exempel lagrar Motor -tabellerna "Memory" i minnet, inte på disken. Motorns CSV "lagrar data i CSV -filer.

    Viktiga överväganden:

    * Plats för filer: De filer som är associerade med en tabell (t.ex. `.ibd`,` .frm`, `.myd`, '.myi') lagras vanligtvis i en katalog som motsvarar databasnamnet. Platsen för dessa kataloger bestäms av "Datadir" -konfigurationsvariabeln i din MySQL -serverkonfiguration (vanligtvis "my.cnf` eller" my.ini ").

    * delat tabellområde (ibdata1): Om du använder `innodb_file_per_table =off` med innoDB, * alla * innodb -tabeller delar filfilen 'ibdata1' (och eventuellt andra 'ibdata' -filer om det växer för stora). Detta kan leda till fragmentering och göra det svårt att återta diskutrymmet.

    * metadata lagring: Även om de primära uppgifterna ofta separeras i olika filer (särskilt med `innoDB_File_per_Table =on '), lagras tabellen * definitioner * (metadata) i en dataordbok som hanteras av servern. `.frm` -filer används för äldre format och är mindre kritiska nu.

    Hur man kontrollerar `innodb_file_per_table`:

    Du kan kontrollera den aktuella inställningen för `innoDB_File_per_Table` med följande SQL -fråga:

    `` `SQL

    Visa variabler som 'InnoDB_File_per_Table';

    `` `

    Sammanfattningsvis:

    Medan äldre lagringsmotorer som myisam * gör * lagra tabelldata, index och definitioner i separata filer, InnoDB (den vanligaste motorn) med `innodb_file_per_table =On` lagrar data och index i en '.ibd` -fil * per tabell * (plus den äldre` .frm` -filen för metadata). Använda `innodb_file_per_table =off` lagrar alla InnoDB -tabelldata och index i den delade` ibdata1` -filen.

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur man gör ett block i PHP Nuke
    ·Konvertera allt till versaler med PHP
    ·Hur man skapar en PDF i farten med PHP
    ·Konvertera Binary i PHP
    ·Vad är en PHP Blockera
    ·Hur man tar bort ett barn från XML med PHP
    ·Hur får man det första elementet i en associativ arra…
    ·Hur optimera mysql
    ·Hur Avrunda till en decimal i PHP
    ·Hur Infoga datum i MySQL Tables
    Utvalda artiklarna
    ·Hur man gör en User Script i GreaseMonkey
    ·Hur man skriver en C-programmet för att hitta den Fibo…
    ·The Back Funktion i HTML Coding
    ·Vilka är fördelarna med COM +
    ·Hur man sätter variabler i WordPress PHP Feed Codes
    ·Hur hitta skillnaden mellan två filer med PerlScript
    ·Konvertera IPA till C Source
    ·Hur öka History Size i Eclipse Console
    ·Ställa isoleringsnivåer i MySQL
    ·Ta bort en lodrät rullningslist i JavaScript
    Copyright © Dator Kunskap https://www.dator.xyz