Mysql
 sql >> база данни >  >> RDS >> Mysql

Алтернатива на дизайна на база данни с изброени колони, което води до лошо представяне

Вместо

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

използвайте

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

Ако няма други таблици, препращащи expressionId , отървете се от тази колона и индекса върху нея.

Защо това помага? Данните са групирани с първичния ключ; търсите данни по geneId , което е началото на PK; следователно данните могат да бъдат извлечени по-ефективно, особено ако таблицата е много по-голяма от innodb_buffer_pool_size (което трябва да е около 70% от RAM).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. IF функция в H2 за съвместимост с MySQL

  2. Какво означава грешката в MySQL 5.6 InnoDB в момента поддържа едно създаване на индекс на FULLTEXT в даден момент. Опитайте LOCK=SHARED означава ли?

  3. Как да направя втора PDO mysql заявка в цикъл while от друга заявка?

  4. Рамката на обекта добавя допълнително условие за клаузата where

  5. Сложна MySQL заявка