Test mellan MySQL och MySQLi
Jag har länge använt mig av den vanliga MySQL-utbyggnaden när jag programmerar PHP. Dock har jag vetat att MySQLi existerar men aldrig tagit steget att testa. Men för någon dag sen fick jag ett infall av nyfikenhet och tänkte att jag skulle ge det en chans. Sagt och gjort testade jag mig fram och började experimentera lite.
Jag vet att MySQLi är bättre, innehåller fler funktioner, stabilare med mera men jag kände ändå att jag ville testa själv. Tyvärr har jag ingen erfarenhet av att göra denna typen av test, så det finns säkerligen mängder av brister eller saker man kunde gjort bättre. På grund av detta tror jag testet inte återspeglar verkligheten till 100%. Men någon form av fingervisning kan man nog ändå få.
Testet genomfördes på min server, som tro det eller ej står i garderoben. Det är en Intel 1.4Ghz, 768Mb Internminne, OS är Ubuntu, PHP 5 och MySQL 5. Rena monstret alltså, eller inte.
Testet
Testet bygger på att sätta in (INSERT) och plocka ut (SELECT) data från en MySQL-databas med hjälp av PHP. Jag använde mig av två olika typer av motorer för tabellerna, InnoDB och MyISAM. Detta för att kunna testa skillnaden i hastighet mellan dessa två.
Tabellen är uppbyggd enligt följande och populerades med 1.000 rader.

Resultatet
| MySQL InnoDB | MySQL MyISAM | MySQLi InnoDB | MySQLi MyISAM | |
|---|---|---|---|---|
| INSERT | 3.1367 s | 0.4527 | 3.2849 | 0.4491 |
| INSERT Prepared Statement | N/A | N/A | 3.3521 | 0.6694 |
| INSERT Stored Procedure | N/A | N/A | 3.3561 | 0.5086 |
| SELECT | 0.0052 s | 0.0055 | 0.0032 | 0.0034 |
| SELECT Prepared Statement | N/A | N/A | 0.0118 | 0.0115 |
| SELECT Stored Procedure | N/A | N/A | 0.1851 | 0.1926 |
Sammanfattning
Som ni ser själva så är det inte stor skillnad mellan MySQL och MySQLi. Det jag är mest förvånad över är skillnaden i hastighet mellan InnoDB och MyISAM, i detta fallet handlar det om sekunder. Jag är också förvånad över att ‘Stored Procedures‘ va ganska slött jämfört me de andra sätten.
Jag vet heller inte om 1000 rader räcker för ge till bra resultat.
Som jag skrev innan är jag ingen expert på dessa typer av tester så det kanske inte är en bra idé att utgå från detta testet när man väljer motor eller eller MySQL-tillägg.
Jag tar gärna emot kommentarer och feedback.
Jag heter Andreas Eriksson är 23 år
och är bosatt i den gamla anrika staden Kalmar.
Just nu läser jag webbprogrammering på Högskolan i Kalmar.
4 Kommentarer