sql >> Database teknologi >  >> RDS >> Mysql

Fremskynder konverteringen fra MyISAM til InnoDB

  • Indstilling af en stor innodb_buffer_pool_size (2 GB eller mere)
  • forlæs dine gamle myisam-data/indeksfiler ved hjælp af shell-kommandoer
  • øg innodb_log_file_size (256 MB)
  • Gør ændringstabellen i X parallelle tråde, hvor X er antallet af CPU-kerner på din server
  • andre mindre justeringer kun til konvertering (innodb_doublewrite=0, innodb_flush_log_at_trx_commit=0)

at sætte innodb_buffer_pool_size så højt som muligt er den typiske måde at fremskynde oprettelsen af ​​innodb-tabeller - dit datasæt ser ud til, at det kunne passe ind i en 2GB innodb bufferpool, så enhver anstændig 64 bit server bør tillade det. alter table type=innodb er også hurtigere end dump+reimport-løsning og er nem at køre parallelt.

Sørg også for, at du har øget innodb_log_file_size fra standardindstillingen på 5 Mb til 128 eller 256 MB. Vær forsigtig med det, og det kræver en ren lukning + sletning af den gamle ib_logfile*.

Hvis din server har noget i retning af 8GB ram, og at du kører en 64-bit version af mysql, vil jeg foreslå en 2GB innodb_buffer_pool, og du kan endda forudlæse de gamle MYD- og MYI-filer, før du lukker for nedetid, så de vil være i OS's sidecache, når det rigtige arbejde starter.

Hvis du også går efter de mindre justeringer, skal du huske på, at du skal fortryde dem efter konverteringen (endnu en lille nedetid) for at have dine data sikre, jeg tvivler dog på, at de er det værd for så lille et datasæt.

Held og lykke.



  1. Få procentdel af udseende af en bestemt værdi i mysql

  2. Strengaggregation i Oracle:Flere rækker i en enkelt kolonne

  3. Hent oracle output parameter ved hjælp af OracleCommand

  4. Hvorfor er putenv() nødvendig på en allerede defineret miljøvariabel?