の代わりに
PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),
使用
PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),
他のテーブルがexpressionId
を防御していない場合 、その列とその上のインデックスを削除します。
なぜこれが役立つのですか?データは主キーでクラスター化されます。 geneId
でデータを検索しています 、これはPKの開始です。したがって、特にテーブルがinnodb_buffer_pool_size
よりもはるかに大きい場合は、データをより効率的にフェッチできます。 (これはRAMの約70%である必要があります)。