sql >> Databasteknik >  >> RDS >> Mysql

Skillnad i tid som krävs för att infoga InnoDB/MyISAM-poster

Det är oklart vilka hållbarhetsinställningar du har aktiverat i MyISAM eller Innodb, inte heller om du använder enrads-inlägg eller batch-inlägg i båda fallen.

Om du använder enrads-inlägg, du använder inte transaktioner och du har aktiverat hållbarhet (standardinställningen i InnoDB), kommer du sannolikt att se InnoDB-prestanda kraftigt begränsas av kravet att binda varje transaktion till hållbar lagring ( dvs skiva) efter varje radinsättning.

MyISAM har inga sådana problem, eftersom det inte är hållbart ändå, det vill säga om maskinen kraschar är du mer eller mindre garanterad att förlora en del nyligen skrivna data som databasen tidigare hade hävdat skrevs framgångsrikt (om inte hela tabellen!).

Om du vill ha anständigt insert-prestanda, använd batch-inlägg och/eller transaktioner, annars mäter du bara hastigheten på en skrivning följt av en fsync(), som (på en icke-batteristödd RAID-kontroller på roterande magnetiska media) är bara hastigheten på skivan som snurrar.

Så anledningen till att innodb är så konsekvent är att du mäter spinnhastigheten på din skiva.

Med det sagt, om du har en upptagen server, vill du definitivt, absolut, använda en batteristödd RAID-kontroller, då kan du uppnå anständig prestanda för transaktionsbekräftelse OCH korrekt hållbarhet (förutsatt att strömmen inte går av längre än batteriet räcker, och servern exploderar inte etc).



  1. Försökte läsa tidigare slutet av stream-felet i MySQL

  2. Korrekt metod för att ta bort över 2100 rader (med ID) med Dapper

  3. Hur man INNER JOIN 3 tabeller med CodeIgniter

  4. Kan inte få mysql-connector-python att installera i virtualenv