Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Alternatywa dla projektu bazy danych z wyliczanymi kolumnami, prowadząca do słabej wydajności

Zamiast

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

użyj

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

Jeśli żadne inne tabele nie odwołują się do expressionId , pozbądź się tej kolumny i znajdującego się w niej indeksu.

Dlaczego to pomaga? Dane są zgrupowane z kluczem podstawowym; szukasz danych według geneId , czyli początek PK; stąd dane mogą być pobierane wydajniej, zwłaszcza jeśli tabela jest dużo większa niż innodb_buffer_pool_size (co powinno stanowić około 70% pamięci 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. Najlepszy sposób na zaimplementowanie architektury Klient<->Serwer<-> Bazy danych w aplikacji na Androida?

  2. Grupuj MySQL według dat między

  3. Jak przyciąć pierwsze trzy znaki na podstawie pierwszej litery (wyrażenia) przed wstawieniem do bazy danych

  4. co tak naprawdę robi mysql_real_escape_string()?

  5. Laravel elokwentny uzyskuje najczęstszą wartość w kolumnie bazy danych