quá khứ sử dụng MySQL công cụ lưu trữ MyISAM theo mặc định, không hỗ trợ các ràng buộc khóa ngoài. Trừ khi bạn khai báo rõ ràng các bảng sử dụng công cụ lưu trữ InnoDB, hoặc thay đổi máy chủ lưu trữ mặc định trên máy chủ, không có khóa ngoại nào xuất hiện, và không có gì ngạc nhiên khi các nhà phát triển phần mềm thiết kế cho MySQL không bận tâm đến việc sử dụng các ràng buộc khóa ngoài.
MySQL 5.5 hiện đang ở giai đoạn thử nghiệm và cuối cùng là InnoDB sẽ là công cụ lưu trữ mặc định. Vì vậy, các ràng buộc khoá ngoại sẽ được hỗ trợ ra khỏi hộp.
Có, nên sử dụng khóa ngoài. Những ràng buộc này giúp đảm bảo dữ liệu của bạn luôn đáp ứng tính toàn vẹn tham chiếu. Cách khác là cơ sở dữ liệu của bạn dần dần lấp đầy với "mẩu vụn" hoặc các hàng tham chiếu đến hàng cha mẹ không còn trong cơ sở dữ liệu nữa. Những điều này có thể dẫn đến kết quả lạ từ truy vấn và không gian lãng phí, truy vấn không hiệu quả, và bạn sẽ tự dọn dẹp công việc dọn dẹp sẽ không cần thiết nếu bạn chỉ có cơ sở dữ liệu thực thi sự sạch sẽ cho bạn.
Re cách comment @Jacob: điểm tốt, nhưng hãy chắc chắn để đọc gần đây bài viết so sánh InnoDB so với MyISAM Những năm trước đây, MyISAM được coi là "công cụ lưu trữ nhanh" và InnoDB được coi là công cụ lưu trữ bạn 'd miễn cưỡng phải sử dụng nếu bạn không thể làm mà không có giao dịch.
Nhưng InnoDB đã cải thiện đáng kể trong vài năm qua và trong hầu hết các trường hợp hôm nay InnoDB thực hiện nhanh hơn so với MyISAM.
Ngoài MyISAM vẫn hỗ trợ lập chỉ mục toàn văn như bạn đề cập, có ít và ít lý do hơn để sử dụng MyISAM. Khi tôi cần lập chỉ mục toàn văn, tôi hoặc duy trì một bảng MyISAM như một tấm gương của lưu trữ chính của tôi trong InnoDB, hoặc người nào khác tôi sử dụng Apache Solr.
Nguồn
2010-06-29 02:45:23
cảm ơn bạn, điều đó có ý nghĩa – samJL
+1 - đảm bảo bạn hiểu được nhược điểm của việc sử dụng innoDB trên MyISAM. Thực hiện tìm kiếm Google cho innoDB vs MyISAM, có nhiều bài viết thảo luận về những lợi thế và bất lợi của cả hai. Vì vậy, nó thực sự phụ thuộc vào những gì bạn đang sử dụng DB cho dù bạn thực sự muốn/cần toàn vẹn tham chiếu trên một số trong những lợi thế mà MyISAM mang lại. Một trong những điều mà tôi vừa phát hiện ra tuần trước là innoDB không hỗ trợ tìm kiếm toàn văn (chưa), nhưng MyISAM thì: ( – Jacob
Quy tắc chung của tôi khi nói đến InnoDB so với MyISAM là, nếu bạn cần tìm kiếm toàn văn MyISAM có một lợi thế lớn so với InnoDB về tốc độ –