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

Việc giới thiệu khóa ngoại vào MySQL có làm giảm hiệu suất không

Giả sử:

  1. Bạn đang sử dụng công cụ lưu trữ hỗ trợ FK (tức là:InnoDB)
  2. Bạn đã có chỉ mục trên các cột liên quan

Sau đó, tôi đoán rằng bạn sẽ nhận được hiệu suất tốt hơn bằng cách để MySQL thực thi tính toàn vẹn. Thực thi tính toàn vẹn tham chiếu, xét cho cùng, là điều mà các công cụ cơ sở dữ liệu được tối ưu hóa để thực hiện. So sánh với việc viết mã của riêng bạn để quản lý tính toàn vẹn trong Ruby sẽ rất chậm.

Nếu bạn cần chuyển từ MyISAM sang InnoDB để có được chức năng FK, bạn cần cân nhắc sự cân bằng về hiệu suất giữa hai công cụ.

Nếu bạn chưa có chỉ dẫn, bạn cần quyết định xem bạn có muốn chúng hay không. Nói chung, nếu bạn đọc nhiều hơn viết, bạn cần (thậm chí) các chỉ dẫn.

Xếp FK lên trên những thứ hiện được lập chỉ mục sẽ ít gây ra hiệu suất tổng thể hơn so với việc triển khai các loại kiểm tra đó trong mã ứng dụng của bạn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để xoay? Làm thế nào để chuyển đổi nhiều hàng thành một hàng có nhiều cột?

  2. Cách sử dụng kết nối liên tục mysqli trên các trang khác nhau

  3. MySQL thêm ngày vào một ngày

  4. Làm cách nào để biết giao dịch nào đang gây ra trạng thái khóa siêu dữ liệu bảng Đang chờ?

  5. ckfinder php 2.6.2 cài đặt xem, hiển thị, sắp xếp không hoạt động