In plaats van
PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),
gebruik
PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),
Als er geen andere tabellen verwijzen naar expressionId
, verwijder die kolom en de index erop.
Waarom helpt dit? De gegevens worden geclusterd met de primaire sleutel; u zoekt gegevens op met geneId
, wat het begin is van de PK; vandaar dat de gegevens efficiënter kunnen worden opgehaald, vooral als de tabel veel groter is dan innodb_buffer_pool_size
(wat ongeveer 70% van het RAM-geheugen zou moeten zijn).