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

Sự khác biệt giữa MyISAM và InnoDB là gì?

Sự khác biệt chính giữa InnoDB và MyISAM ("liên quan đến thiết kế bảng hoặc cơ sở dữ liệu" mà bạn đã hỏi) là hỗ trợ cho "tính toàn vẹn tham chiếu" và "giao dịch".

Nếu bạn cần cơ sở dữ liệu để thực thi các ràng buộc khóa ngoại hoặc bạn cần cơ sở dữ liệu để hỗ trợ các giao dịch (tức là các thay đổi được thực hiện bởi hai hoặc nhiều hoạt động DML được xử lý như một đơn vị công việc duy nhất, với tất cả các thay đổi được áp dụng hoặc tất cả các thay đổi được hoàn nguyên) thì bạn sẽ chọn công cụ InnoDB, vì các tính năng này không có trong công cụ MyISAM.

Đó là hai điểm khác biệt lớn nhất. Một sự khác biệt lớn khác là tính đồng thời. Với MyISAM, một câu lệnh DML sẽ có được một khóa riêng trên bảng và trong khi khóa đó được giữ, không phiên nào khác có thể thực hiện thao tác SELECT hoặc DML trên bảng.

Hai công cụ cụ thể mà bạn đã hỏi (InnoDB và MyISAM) có các mục tiêu thiết kế khác nhau. MySQL cũng có các công cụ lưu trữ khác, với các mục tiêu thiết kế riêng của chúng.

Vì vậy, khi lựa chọn giữa InnoDB và MyISAM, bước đầu tiên là xác định xem bạn có cần các tính năng do InnoDB cung cấp hay không. Nếu không, thì MyISAM sẽ được xem xét.

Một cuộc thảo luận chi tiết hơn về sự khác biệt là khá thiếu thực tế (trong diễn đàn này) vắng mặt một cuộc thảo luận chi tiết hơn về không gian vấn đề ... ứng dụng sẽ sử dụng cơ sở dữ liệu như thế nào, bao nhiêu bảng, kích thước của các bảng, tải giao dịch, khối lượng lựa chọn , chèn, cập nhật, yêu cầu đồng thời, tính năng sao chép, v.v.

Thiết kế logic của cơ sở dữ liệu nên tập trung vào phân tích dữ liệu và các yêu cầu của người dùng; lựa chọn sử dụng cơ sở dữ liệu quan hệ sẽ đến muộn hơn và thậm chí sau này sẽ là lựa chọn MySQL làm hệ quản trị cơ sở dữ liệu quan hệ và sau đó là lựa chọn công cụ lưu trữ cho mỗi bảng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bộ ký tự và đối chiếu chính xác có nghĩa là gì?

  2. Làm cách nào để có được danh sách các khung nhìn MySQL?

  3. Cách NOT RLIKE hoạt động trong MySQL

  4. Sự khác biệt giữa dấu ngoặc vuông và dấu ngoặc vuông trong câu lệnh SQL là gì?

  5. Hoàn thiện hệ thống đăng ký người dùng sử dụng cơ sở dữ liệu PHP và MySQL