Phần lớn thời gian của tôi dành để làm việc với khách hàng của tôi về Kiểm tra tình trạng hoạt động cơ sở dữ liệu toàn diện . Điều tuyệt vời nhất của buổi kiểm tra sức khỏe là tôi được gặp gỡ nhiều người mới và chia sẻ nhiều câu chuyện khác nhau. Gần đây, tôi đã được hỏi bởi một trong những DBA cũng làm việc trên MySQL cùng với SQL Server, công cụ ưa thích của tôi cho MySQL - MyISAM hay InnoDB là gì?
Tôi nghĩ rằng đó là một câu hỏi rất thú vị để hỏi vào năm 2019 vì tôi tin rằng bản thân nhóm MySQL đã đưa ra quyết định về vấn đề này kể từ phiên bản MySQL 5.5. Họ đã chọn InnoDB làm công cụ mặc định của họ kể từ MySQL 5.5.
Đây là năm lý do chính của tôi để sử dụng InnoDB
- InnoDB hỗ trợ khóa cấp độ hàng rất quan trọng đối với hiệu suất. MyISAM chỉ hỗ trợ khóa mức bảng, tạo ra một nút thắt cổ chai lớn khi bảng của bạn được cập nhật thường xuyên.
- InnoDB triển khai các giao dịch, các giao dịch này rất quan trọng đối với ứng dụng cơ sở dữ liệu quan trọng liên quan đến ngân hàng cũng như thương mại điện tử.
- InnoDB hỗ trợ ràng buộc mối quan hệ như khóa ngoại, giúp nó thân thiện hơn với cơ sở dữ liệu quan hệ so với MyISAM vốn không hỗ trợ.
- InnoDB hỗ trợ các giao dịch ACID (Nguyên tử, Nhất quán, Cô lập, Độ bền), làm cho nó hoàn toàn tuân thủ các quy tắc RDBMS mà MyISAM không hỗ trợ nó.
- InnoDB quản lý các chỉ mục và bảng cơ sở với sự trợ giúp của trình quản lý lưu trữ nội bộ với vùng đệm bộ nhớ, cực kỳ hiệu quả về mặt hiệu suất. MyISAM chủ yếu sử dụng các tệp đĩa cho bảng cơ sở, không được tối ưu hóa cho hiệu suất.
Đề xuất của tôi là nếu bạn phải lựa chọn công cụ, bạn để MySQL quyết định công cụ mặc định hoặc chọn InnoDB có các tính năng mới nhất của RDBMS.
Tôi hiện đang viết báo cáo chính thức về chủ đề này, sau khi báo cáo chính thức được xuất bản, tôi sẽ chia sẻ điều đó với tất cả các bạn để các bạn có thể đọc về chủ đề này.