På min server med din konfiguration är min basprestanda följande:
- InnoDB:5.71s
- MyISAM:2,50s
Det här är inte dåligt i min bok, men det kan behöva lite justeringar.
Din InnoDB-prestanda kan förbättras på flera fronter:
Öka innodb_buffer_pool_size
- Detta är den enskilt viktigaste InnoDB-konfigurationsvariabeln. Helst bör det vara 70-80 % av ditt tillgängliga RAM-minne på en server dedikerad till MySQL och InnoDB.
- Ökar
innodb_buffer_pool_size
på min server till 2G (mer än tillräckligt för detta test) minskat InnoDB-tiden till 4,60s
Gör ID till PRIMÄRNYCKEL
- InnoDB kluster sin data baserat på PRIMÄRNYCKEL. När du inte deklarerar en, genererar InnoDB en slumpmässig en implicit. Att ha en sekventiell primärnyckel (id) är snabbare än en slumpmässig.
- Att göra id till PRIMÄRNYCKEL på min server minskat InnoDB-tiden till 3,80s
Uppgradera din MySQL/InnoDB
Med MySQL 5.1+ stöder MySQL pluggbara lagringsmotorer. Närmare bestämt den nya InnoDB Plugin .
Den nya InnoDB-motorn ger många många prestandaförbättringar som kan har betydande inverkan på just den här typen av sökning.
Att notera:
- Från och med MySQL 5.1.38 ingår InnoDB Plugin i MySQL
- Från och med MySQL 5.1.43 är InnoDB Plugin inte bara inkluderad, utan är standardmotorn för MySQL