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

Używanie jednej z kolumn w kluczu złożonym jako klucza obcego

Jak wskazuje dokumentacja MySQL dotycząca kluczy obcych :

Tak więc, jeśli używasz innodb, MySQL nie pozwala na tworzenie klucza obcego w polu, które nie jest skrajnym lewym polem w indeksie.

Powodem jest to, że w indeksie wielokolumnowym nie można wyszukać wartości na podstawie pola, które nie znajduje się najbardziej po lewej stronie, dlatego indeks nie może być użyty do szybkiego wyszukania wartości do sprawdzenia klucza obcego.

To zachowanie indeksów MySQL jest opisane w dokumentacji MySQL na indeksy wielokolumnowe :



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najbardziej wydajne podejście do wielojęzycznej witryny PHP

  2. SQL LEFT-JOIN na 2 polach dla MySQL

  3. Jak wybierać rekordy jeden po drugim bez powtarzania?

  4. PHPExcel i zawijanie tekstu

  5. Aktualizacja Yii2 QueryBuilder z Join