Místo
PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),
použití
PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),
Pokud žádné jiné tabulky neodkazují na expressionId
, zbavte se tohoto sloupce a indexu v něm.
Proč to pomáhá? Data jsou klastrována pomocí primárního klíče; vyhledáváte data podle geneId
, což je začátek PK; proto lze data načítat efektivněji, zvláště pokud je tabulka mnohem větší než innodb_buffer_pool_size
(což by mělo být asi 70 % RAM).