Au lieu de
PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),
utiliser
PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),
Si aucune autre table ne référence expressionId
, supprimez cette colonne et son index.
Pourquoi cela aide-t-il ? Les données sont regroupées avec la clé primaire ; vous recherchez des données par geneId
, qui est le début du PK ; par conséquent, les données peuvent être récupérées plus efficacement, surtout si la table est beaucoup plus grande que innodb_buffer_pool_size
(ce qui devrait représenter environ 70 % de la RAM).