Ao invés de
PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),
usar
PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),
Se nenhuma outra tabela estiver referenciando
expressionId
, livre-se dessa coluna e do índice nela. Por que isso ajuda? Os dados são agrupados com a chave primária; você está procurando dados por
geneId
, que é o início do PK; portanto, os dados podem ser buscados com mais eficiência, especialmente se a tabela for muito maior que innodb_buffer_pool_size
(que deve ser cerca de 70% da RAM).