sql >> Databáze >  >> RDS >> Mysql

Alternativa k návrhu databáze s výčtovými sloupci, což vede ke špatnému výkonu

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



  1. Úloha SSIS pro nekonzistentní import počtu sloupců?

  2. spouštění postgresql a pgadmin ve Windows bez instalace

  3. MYSQL vyhledávání citlivé na malá a velká písmena (pomocí hibernace) pro utf8

  4. vygenerovat výčtovou třídu z tabulky pomocí JOOQ