Ik ben van plan een db op te zetten waar op een gegeven moment enkele miljoenen records in kunnen komen te staan (voornamelijk numeriek en decimaal)
Wat voor type db kan ik hier het beste voor kiezen? Tot nu toe gebruikte ik eigenlijk altijd MyIsam. Maar ik heb Frank ooit een keer horen zeggen dat die niet zo betrouwbaar is en hij liever InnoDB gebruikt.
Maar als ik die probeer aan te maken maakt hij er automatisch weer MyIsam van?
Kortom, wat is de beste soort db om numerieke en decimale gegevens op te slaan en dat het toch nog redelijk snel is met enkele miljoenen records?
Om even een zinnig antwoord (toevoeging) te geven op je originele vraag. Als je met miljoenen records werkt dan hangt de keuze sterk af van de toepassing en het gebruik van je database. Kort gezegd is MyISAM snel met selecteren van geindexeerde velden, en is InnoDB (/ andere systemen) betrouwbaar met updaten, inserteren en snel met het selecteren van niet geindexeerde velden. Dat laatste durf ik trouwens niet 100% zeker te zeggen, ik heb de tests zelf alleen met PostgreSQL ten opzichte van MyISAM gedaan, maar ik beschouw InnoDB en PostgreSQL even als soortgelijk.
Dus als je echt uitsluitend gaat selecteren op indexes, zoals zoekmachines, dan zou ik waarschijnlijk voor MyISAM gaan. Zodra de woorden betrouwbaarheid, updaten en inserten van belang zijn dan moet je bij deze hoeveelheden MyISAM direct vergeten (dat is mijn mening c.q. ervaring).
Verder, niet alle MySQL systemen hebben InnoDB draaien, misschien is dat je probleem nu.
Trouwens, een paar miljoen is niet zo ontzettend veel, overschat het niet. Zoeken op integers en floats gaat sowieso veel sneller dan zoeken op tekst-varianten, dus MyISAM zal wel héél snel zijn, maar het hangt dus even af van de toepassing.
Ik zou dan ook serieus overwegen PostgreSQL te gebruiken, tenzij je daar geen ervaring mee hebt.
En als je InnoDB gaat gebruiken, niet alleen vertrouwen op 'dat het systeem goed is', maar maak ook gebruik van zijn extra functionaliteit. Ik neem aan dat je met FOREIGN KEYs kan werken, en verder zou ik zeker transactions gebruiken.
Info over transactions: klik in mijn profiel effe op de tutorial over PostgreSQL.