[MySQL] MyISAM naar InnoDB

Pagina: 1
Acties:

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Hey,

heb via de search gezocht maar helaas niet exact kunnen vinden, ik vroeg me af of het goed mogelijk was om zonder problemen grote MyISAM tabellen te converteren naar InnoDB, of dat ik m'n tabellen opnieuw zou moeten maken en ze daarna opnieuw zou moeten vullen?

Wil namelijk de tabellen van m'n forum dat op dit moment redelijk groot is InnoDB maken ipov MyISAM.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

wat is groot?

Ik heb het met verschillende tabellen gedaan, maar niet met tabellen van meerdere gigabytes. Die zou ik denk ik van een backup opnieuw inladen, hoewel het niet perse noodzakelijk is. Let er wel op dat je totaal geen wijzigingen in je database toelaat tijdens dat soort processen (gewoon de toegang uitschakelen, als er steeds readers zijn is het alleen maar trager) zodat het sneller en veiliger verloopt.

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 13-05 14:28

koli-man

Bartender!!!!

mmm, een vraagje, maar niet belangrijk genoeg om een nieuw topic te openen. Is het enige verschil tussen MyIsam en InnoDB dat je met InnoDB transacties kan maken of zijn er nog andere belangrijke verschillen?

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Volgens mij voegt InnoDB onder andere ook referential integrity toe, en nog een paar dingen. Zie ook http://www.innodb.com/index.php.

[ Voor 4% gewijzigd door djc op 19-02-2004 12:04 ]

Rustacean


Verwijderd

Je kunt wel een
ALTER TABLE tablename TYPE=InnoDB;
uitvoeren, maar het zal met grote tabellen weleens heeel lang kunnen gaan duren...

Overigens neemt een InnoDB table vaak meer schijfruimte in beslag en is hij voor andere omstandigheden geoptimaliseerd dan MyISAM...
InnoDB schijnt (ik ben nog wat testen aan het schrijven) beter te functioneren bij hoge "concurrency" (veel selects en veel inserts/deletes/upudates), terwijl MyISAM schittert bij of veel selects of veel inserts/deletes/updates.
MyISAM houdt zelf het aantal records bij, dus is SELECT COUNT(*) FROM tablename; zeer snel, terwijl InnoDB hier een eeuwigheid over doet.
InnoDB zou een snellere en betere crash recovery hebben, heeft record level locking tegenover table level voor MyISAM.
Naderhand toevoegen van indexen bij InnoDB vergt het herbouwen van de tabel, dus erg traag.
De verschillen moet je goed bekijken voordat je "eventjes" overschakelt...

  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Ik ben nu dus bezig om alle postings uit de MyISAM tabel naar de InnoDB tabel te exporteren, het vreemde is alleen dat hij nu in PHPMyAdmin telkens als ik ff check hoeveel hij er al heeft gehad, een ander aantal bij het aantal records zet.

De ene keer is het 307.065 bijvoorbeeld, druk ik daarna op F5 is het 390.482 en daarna weer minder.... hoe kan dat in hemelsnaam?

Edit: nog ff een kleine vraag die hier los van staat maar niet echt een topic waard is, is er een manier om te kijken welke velden van een tabel niet meer gebruikt worden / lang niet meer gebruikt zijn, zonder handmatig in al je scripts de queries te checken?

[ Voor 27% gewijzigd door TangLeFuzZ op 26-02-2004 16:26 ]

Pagina: 1