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

Защо трябва да използвам външен ключ, ако мога да използвам WHERE?

Не е строго необходимо за заявката, вярно е. Той съществува поради няколко причини:

  1. Като ограничение на таблицата, за да ви спре да вмъквате нещо, което не сочи към нищо;
  2. Като улика за оптимизатора; и
  3. По исторически причини къде е било по-необходимо.

(1) вероятно е важното от трите. Това се нарича референтна цялост . Това означава, че ако има стойност във външен ключ, ще има съответен запис с тази стойност като първичен ключ в родителската таблица.

Като се има предвид това, не всички бази данни поддържат референтна цялост (напр. MySQL/MyISAM таблици) и тези, които не я налагат непременно (по съображения за производителност).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Клониране на MySQL база данни в същия MySql екземпляр

  2. MYSQL избира последните 3 реда, подредени по ASC

  3. MacOSX:автоматично стартиране на mysql при стартиране

  4. Какви са оптималните размери на varchar за MySQL?

  5. Извикването на Ajax връща цялата страница, а не само стойността на ехо