Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao lại sử dụng các ràng buộc Khoá ngoại trong MySQL?

Khoá ngoại thực thi tính toàn vẹn của tham chiếu . Những ràng buộc này đảm bảo rằng một hàng trong bảng order_details với một trường order_id tham chiếu đến một orders bảng sẽ không bao giờ có order_id giá trị không tồn tại trong orders bàn.

Khóa ngoại không bắt buộc phải có cơ sở dữ liệu quan hệ đang hoạt động (thực tế là bộ nhớ mặc định của MySQL engine không hỗ trợ FK), nhưng chúng chắc chắn rất cần thiết để tránh các mối quan hệ bị hỏng và các hàng mồ côi (tức là tính toàn vẹn tham chiếu). Khả năng thực thi tính toàn vẹn tham chiếu ở cấp cơ sở dữ liệu là bắt buộc đối với C trong ACID đứng.

Đối với mối quan tâm của bạn về hiệu suất, nói chung có một chi phí hiệu suất, nhưng có thể sẽ không đáng kể. Tôi khuyên bạn nên đưa vào tất cả các ràng buộc khóa ngoại của bạn và chỉ thử nghiệm mà không có chúng nếu bạn gặp vấn đề về hiệu suất thực sự mà bạn không thể giải quyết bằng cách khác.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Vòng lặp qua kết quả SQL trong PHP - Không nhận được toàn bộ mảng

  2. Cách đặt các biến môi trường cho Laravel 5 trên AWS EC2 với MySQL

  3. Tại sao _ (gạch dưới) khớp với - (gạch nối)?

  4. Mã hóa mật khẩu và tạo muối Crypt (), được thực thi tốt?

  5. Máy chủ WAMP màu xanh lục nhưng chỉ nhận được 404