sql >> Base de Datos >  >> RDS >> Mysql

Alternativa al diseño de base de datos con columnas enumeradas, lo que conduce a un bajo rendimiento

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).