Statt
PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),
verwenden
PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),
Wenn keine anderen Tabellen auf expressionId
verweisen , entfernen Sie diese Spalte und den Index darauf.
Warum hilft das? Die Daten werden mit dem Primärschlüssel geclustert; Sie suchen Daten nach geneId
, das ist der Beginn des PK; daher können die Daten effizienter abgerufen werden, insbesondere wenn die Tabelle viel größer als innodb_buffer_pool_size
ist (was etwa 70 % des Arbeitsspeichers ausmachen sollte).