sql >> Databasteknik >  >> RDS >> Mysql

När ska man använda MyISAM och InnoDB?

Läs om Storage Engines .

MyISAM:

MyISAM lagringsmotor i MySQL.

  • Enklare att designa och skapa, alltså bättre för nybörjare. Ingen oro över utländska relationer mellan tabeller.
  • Snabbare än InnoDB på det hela taget som ett resultat av den enklare strukturen och därmed mycket lägre kostnader för serverresurser. -- Oftast inte längre sant.
  • Fulltextindexering. -- InnoDB har det nu
  • Särskilt bra för läsintensiva (utvalda) tabeller. -- Oftast inte längre sant.
  • Diskfotavtrycket är 2x-3x mindre än InnoDBs. -- Från och med version 5.7 är detta kanske den enda verkliga fördelen med MyISAM.

InnoDB:

InnoDB lagringsmotor i MySQL.

  • Stöd för transaktioner (ger dig stöd för ACID egendom).
  • Låsning på radnivå. Att ha en mer finkornig låsmekanism ger dig högre samtidighet jämfört med till exempel MyISAM .
  • Begränsningar för främmande nyckel. Tillåter dig att låta databasen säkerställa integriteten för databasens tillstånd och relationerna mellan tabeller.
  • InnoDB är mer motståndskraftig mot tabellkorruption än MyISAM.
  • Stöd för stor buffertpool för både data och index. MyISAM-nyckelbuffert är endast för index.
  • MyISAM är stillastående; alla framtida förbättringar kommer att finnas i InnoDB. Detta klargjordes mycket tydligt med lanseringen av version 8.0.

MyISAM-begränsningar:

  • Inga främmande nycklar och överlappande raderingar/uppdateringar
  • Ingen transaktionsintegritet (ACID-efterlevnad)
  • Inga återställningsmöjligheter
  • 4 284 867 296 radgräns (2^32) -- Detta är gammal standard . Den konfigurerbara gränsen (för många versioner) har varit 2**56 byte.
  • Högst 64 index per tabell

InnoDB-begränsningar:

  • Ingen fulltextindexering (under 5.6 mysql-version)
  • Kan inte komprimeras för snabb, skrivskyddad (5.5.14 introducerades ROW_FORMAT=COMPRESSED )
  • Du kan inte reparera en InnoDB-tabell

För kortfattad förståelse läs länkarna nedan:

  1. MySQL-motorer:InnoDB vs. MyISAM – En jämförelse mellan fördelar och nackdelar
  2. MySQL-motorer:MyISAM vs. InnoDB
  3. Vilka är de viktigaste skillnaderna mellan InnoDB och MyISAM?
  4. MyISAM kontra InnoDB
  5. Vad är skillnaden mellan MyISAM och InnoDB?
  6. MySql:MyISAM vs. Inno DB!


  1. Databasfailover för WordPress-webbplatser

  2. <expr> förväntat, fick '?'

  3. sökordsfel saknas i oracle CASE WHEN sql-satsen

  4. Hur lägger man till på radera kaskadbegränsningar?