[MySQL] Hele database InnoDB, of toch deels MyISAM?

Pagina: 1
Acties:

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

ik ben m'n site compleet aan het herbouwen, from scratch....
De database wordt dus ook compleet opnieuw in elkaar gezet, en nu zit ik met de volgende kwestie;

Ik wil alles deze keer zo net mogelijk in elkaar zetten, en dus ook de database. Het liefst zou ik echte foreign keys, en transacties gebruiken.
Dit kan alleen met InnoDB, en niet met MyISAM... ik twijfel alleen nog, omdat ik eigenlijk maar een paar tabellen heb die echt 'groot' zijn (over een gig).
Voor die tabellen gebruik ik zowiezo InnoDB, maar omdat ik alles graag netjes wil hebben (echte foreign keys e.d.), ben ik aan het overwegen om de hele database in InnoDB te doen.

Zijn er mensen die op dit moment een relatief grote site hebben, en voor al hun tabellen het type InnoDB gebruiken?
Wat is jullie ervaring met kleinere tabellen en InnoDB, als ik alles in Inno zou doen, zou dat dan ten koste gaan van de snelheid?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Het hangt er bij mijn weten vanaf wat voor dingen je vooral met je gegevens wil doen. Als ik het goed heb is MyISAM sneller met het ophalen van gegevens, en InnoDB sneller met wijzigen en opslaan. Verder is het natuurlijk zo, dat hoe kleiner de tabel is, hoe korter de acties die je erop uitvoert zouden moeten duren.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
-NMe- schreef op donderdag 06 januari 2005 @ 23:45:
Het hangt er bij mijn weten vanaf wat voor dingen je vooral met je gegevens wil doen. Als ik het goed heb is MyISAM sneller met het ophalen van gegevens, en InnoDB sneller met wijzigen en opslaan. Verder is het natuurlijk zo, dat hoe kleiner de tabel is, hoe korter de acties die je erop uitvoert zouden moeten duren.
Ik zat op de InnoDB site wat benchmarks te lezen, waaronder eentje samen met MyISAM.
Uit die benchmark kwam het volgende:

code:
1
2
3
4
5
Wall clock time in seconds
Test                                InnoDB  MyISAM
100 000 inserts                     25  40
100 000 selects on primary key      57  58
100 000 selects on secondary key    68  95


InnoDB op elk vlak sneller... maar dit gaat wel om erg veel data, een test met een kleinere tabel hebben ze niet gedaan.
Ik zal morgen zelf eens wat tests uitvoeren en de resultaten hier posten...

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 14-11-2025

JayVee

shibby++!

TangLeFuz, dit is een InnoDB benchmark... je weet maar nooit hoe objectief die is.

Ik heb voor een product van ons bedrijf alles op InnoDB zodat je inderdaad overal foreign keys kan leggen. Dan ga ik echt niet eikelen met gemengde tabels, of het moet een systeem zijn dat maximale performance moet hebben.

Op onze testserver is de grootste tabel 240KB met 1060 records. Niet echt veel dus. Maar op onze zielige AMD K2 400MHz 'merken' (ik heb het dus niet over benchen) we echt geen snelheidsverschil met MyISAM (en dat hebben we toen getest bij de overgang).

[ Voor 7% gewijzigd door JayVee op 07-01-2005 00:53 ]

ASCII stupid question, get a stupid ANSI!


  • Kees
  • Registratie: Juni 1999
  • Laatst online: 15:28

Kees

Serveradmin / BOFH / DoC
het forum waar je het post draait in zijn geheel in innodbspace :)

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • TangLeFuzZ
  • Registratie: Juni 2001
  • Laatst online: 15-10-2025
Aha.. interessant...

Al zijn natuurlijk wel vrijwel alle tabellen van GoT vrij groot, niet waar? :)

  • Genoil
  • Registratie: Maart 2000
  • Laatst online: 12-11-2023
Is toch een kwestie van genoeg RAM in je server hangen om InnoDB maar lekker te laten draaien?

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Hou er rekening mee dat foreign keys je een performance penalty kunnen geven.
Ik heb geen ervaring met MySQL/innoDB op dit gebied, maar over het algemeen levert een insert op een child tabel je een lookup op in de via een foreign key gerefereerde masters.
Dus in geval van een forum zou een insert op een post tabel je wellicht een lookup in de topics en de users opleveren.
Deze lopen dan wel over de primary key, maar je applicatie heeft die gegevens meestal al gevalideerd, dus dat de database dit nogmaals doet is veelal overbodig.

Who is John Galt?


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 17:54
maar je applicatie heeft die gegevens meestal al gevalideerd
Dat hoef je dan dus niet meer te doen, alleen netjes de errors afvangen zodat je weet wat er fout gaat.
Pagina: 1