En lugar de
PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),
usar
PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),
Si ninguna otra tabla hace referencia a expressionId
, deshágase de esa columna y del índice que contiene.
¿Por qué esto ayuda? Los datos se agrupan con la clave principal; está buscando datos por geneId
, que es el inicio del PK; por lo tanto, los datos se pueden obtener de manera más eficiente, especialmente si la tabla es mucho más grande que innodb_buffer_pool_size
(que debería ser alrededor del 70 % de la RAM).