sql >> Database teknologi >  >> RDS >> Mysql

Alternativ til databasedesign med opregnede kolonner, hvilket fører til dårlige præstationer

I stedet for

PRIMARY KEY (`expressionId`),
UNIQUE KEY `geneId` (`geneId`,`conditionId`),

brug

PRIMARY KEY(`geneId`,`conditionId`),
INDEX (`expressionId`),

Hvis ingen andre tabeller refererer til expressionId , slip med den kolonne og indekset på den.

Hvorfor hjælper dette? Dataene er grupperet med den primære nøgle; du søger data efter geneId , som er starten på PK; derfor kan dataene hentes mere effektivt, især hvis tabellen er meget større end innodb_buffer_pool_size (hvilket burde være omkring 70 % af RAM).



  1. Hvordan sletter jeg fra flere tabeller ved hjælp af INNER JOIN i SQL server

  2. Tidligere Capgemini Executive, Sunitha Ray, slutter sig til ScaleGrid DBaaS for at udvide virksomhedens salg

  3. Output med PHP værdien af ​​en variabel eller en foruddefineret KONSTANT fra en MySQL-resultatstreng

  4. Sådan beregnes daglige aktive brugere (DAU) i MySQL