Tôi vừa bắt đầu thực tập tại một nhà phần mềm nhỏ và tôi đang làm việc trên một hệ thống ERP. Đội trưởng của tôi đã cấm tôi tạo ra bất kỳ mối quan hệ nào trong cơ sở dữ liệu. Vì đây là bài tập của tôi nên tôi đã bị sốc vì cho đến bây giờ tôi đã đọc rằng các mối quan hệ là cần thiết để đảm bảo tính toàn vẹn của dữ liệu. Đội trưởng của tôi nói với tôi rằng chúng tôi có thể thực thi tính toàn vẹn dữ liệu ở giao diện người dùng. Sau khi một số nghiên cứu tôi phát hiện ra rằng các phím nước ngoài làm cho db chậm hơn nhưng lập chỉ mục các phím nước ngoài có thể tăng hiệu suất.Làm cho các mối quan hệ trong Cơ sở dữ liệu làm cho chúng chậm lại
Câu hỏi
- Làm thế nào làm cho các phím nước ngoài chi phí hiệu suất?
- Đảm bảo tính toàn vẹn dữ liệu ở giao diện người dùng không hiệu quả về chi phí? Nếu có thì điều gì sẽ là sự khác biệt giữa chi phí hiệu suất của các khóa ngoại tệ cơ sở dữ liệu và chi phí bằng cách đảm bảo các quy tắc toàn vẹn dữ liệu ở mặt trước?
- Nếu các khóa ngoài của cơ sở dữ liệu làm cho cơ sở dữ liệu chậm hơn, và các quy tắc toàn vẹn ở lớp ứng dụng là một cách tiếp cận tốt hơn thì tại sao cơ sở dữ liệu quan hệ của chúng ta được phép có khóa ngoài? Sau khi thực hiện một số nghiên cứu và đọc các mối quan hệ làm cho db chậm hơn, tôi đã cố gắng nghĩ về một kịch bản đảm bảo tính toàn vẹn dữ liệu ở lớp ứng dụng là không thể, nhưng tôi không thể nghĩ ra được, Nếu ai đó có thể giải thích điều này, .
Nếu indexing phím nước ngoài tăng hiệu suất sau đó điều gì sẽ tốt hơn ra khỏi hai dưới đây:
1.) Bảo đảm nguyên tắc toàn vẹn dữ liệu ở lớp ứng dụng
2.) Indexing Keys nước ngoài
Cảm ơn bạn đã trợ giúp.
Giải pháp chính xác sẽ phụ thuộc vào RDBMS và mô hình dữ liệu của bạn, nhưng bạn có thể dễ dàng kiểm tra lý thuyết này bằng cách tạo kế hoạch giải thích cho các truy vấn trên bàn của bạn có và không có khóa ngoài. – woemler
@willOEM Cảm ơn ngài, tôi sẽ thử điều đó. –