Bekijk Volledige Versie : MYSQL Databases
johan.smits
15/01/08, 21:12
Ik heb nu een aantal databases op mijn MYSQL server staan.
Echter nu heb ik mij altijd afgevraagd wat nu wezelijk het verschil is tussen de myisam of de innodb?
Wat zijn de verschillen?
Wanneer kies je voor de ene of de andere?
ik gebruik ook een master/master replication via een loadbalancer.
GlennMatthys
15/01/08, 21:43
Het voornaamste verschil is dat MyISAM geen ondersteuning heeft voor transactions, en InnoDB wel.
De MySQL handleiding "Transactions and Atomic Operations" (http://dev.mysql.com/doc/refman/5.0/en/ansi-diff-transactions.html)
Wikipedia Database transaction (http://en.wikipedia.org/wiki/Database_transaction)
Wikipedia MyISAM (http://en.wikipedia.org/wiki/MyISAM)
Wikipedia InnoDB incl. vergelijking met MyISAM (http://en.wikipedia.org/wiki/InnoDB)
johan.smits
15/01/08, 21:56
Als ik de links correct heb gelezen, is innodb sneller dan myisam. Echter als ik inserts gebruik is het langzamer?
Ook naa een systeem crash is innodb direct weer online komen en myisam moet eerst alles scannan?
Wat gebruiken jullie en zijn de boven vernoemde reden ook jullie redenen?
GlennMatthys
15/01/08, 21:59
Welke storage engine je gebruikt hangt er van af voor welk doel je je database gaat gebruiken. Die keuze moet je zelf maken aan de hand van de voordelen en nadelen dat je kon lezen in de artikels hierboven gepost.
johan.smits
15/01/08, 22:03
Het is me helaas nog niet helemaal duidelijk bij de aan gegevens links.
Daarom een 2e post.
Antwoord geven op je vraag is onmogelijk, er is geen "goede" en geen "slechte". Elke situatie vraagt om een bepaalde oplossing, en MyISAM en InnoDB bieden elk hun oplossingen. Een goede DBA gaat voor de nodige tabellen de juiste keuzes maken (er zijn nog andere types dan die twee bvb); en een database kan een mix hebben van verschillende tabeltypes.
johan.smits
16/01/08, 10:45
Dan zal ik mijn vraag anders formuleren.
Wanneer moet ik voor een myisam kiezen?
Wanneer moet ik voor een innodb kiezen?
Aantal records zijn die van belang?
Groote database?
Meer select dan insert/delete query's?
Ik ben gewoon op zoek in normale taal wanneer ik voor een bepaald type database moet gaan.
Standaard kun je beter MyIsam gebruiken. MyIsam is beter sneller en makkelijker te herstellen als het corrupt is geraakt. Als je gebruik gaat maken van bijvoorbeeld een grote hoeveelheid inserts en updates achter elkaar op een grote hoeveelheid tabellen, bijvoorbeeld als je financiele transacties aan het afhandelen bent, dan kies je voor innodb. Dan kun je transactional werken. Als er iets fout gaat kun je dan een rollback doen en zit er geen onderlinge inconsistentie in je tabellen.
johan.smits
16/01/08, 11:11
Bedankt voor je antwoord.
en zo zijn er nog wel een paar verschillen.. niet alle engines ondersteunen 'fulltext search', foreign keys en nog wel een paar van die dingen...
Dus kijk wat je wil en kijk per database/tabel wat je nodig heb en wil.
en om het makkelijker te maken heeft mysql voor versie 6 een geheel eigen db engine in de planning staan ;)
waarvan alpha nu uit is en door moi test gedraaid gaat worden later deze week ( met een db van rond de 100mb en veel inserts/deletes/updates/selects)
ik zal mijn bevindingen hier kenbaar maken indien gewenst
johan.smits
16/01/08, 13:27
Ik ben benieuwd wat je bevindingen zijn.
GlennMatthys
16/01/08, 13:33
Dan zal ik mijn vraag anders formuleren.
Wanneer moet ik voor een myisam kiezen?
Wanneer moet ik voor een innodb kiezen?
Aantal records zijn die van belang?
Groote database?
Meer select dan insert/delete query's?
Ik ben gewoon op zoek in normale taal wanneer ik voor een bepaald type database moet gaan.
Volgens mij weet je maar half waarmee je bezig bent. Gebruik maar MyISAM.
systemdeveloper
16/01/08, 13:42
http://www.talkphp.com/mysql-databases/1473-when-use-myisam-innodb.html
http://www.talkphp.com/mysql-databases/1473-when-use-myisam-innodb.html
zeer goede post, bedankt daarvoor, kan ik ook eindelijk degenen die de front-side doen uitleggen wat het verschil is ;)