Lựa chọn storage engine phù hợp

Một phần của tài liệu Nghiên cứu phương pháp xây dựng Storage Engine cho hệ quản trị cơ sở dữ liệu MySQL (Trang 50 - 51)

L ỜI CAM ĐOAN

2.4.1.Lựa chọn storage engine phù hợp

Máy chủ MySQL làm việc với hệ thống tệp thông qua các storage engine. Mặc dù MySQL cung cấp một storage engine mặc định, chẳng hạn MyISAM cho các phiên bản cũ và InnoDB cho các phiên bản từ 5.5.5 trở lên, đồng thời có cơ chế cho phép lựa

chọn storage engine trên từng bảng nhưng có thể đôi khi những cơ chế mặc định đó không đáp ứng đúng nhu cầu mà ứng dụng cần. Vì vậy, khi thiết kế các ứng dụng dựa

trên MySQL, quyết định lựa chọn storage engine nào để sử dụng có ý nghĩa quan trọng

tới hiệu suất thực thi của ứng dụng.

Có rất nhiều yếu tố ảnh hưởng đến quyết định lựa chọn storage engine được sử

dụng. Sau đây là một vài yếu tố chính cần quan tâm:

- Giao tác: Nếu ứng dụng yêu cầu giao tác thì InnoDB được chứng minh là lựa

chọnổn định nhất. MyISAM là lựa chọn tốt nếu không yêu cầu giao tác và đưa ra khóa

chính trong cả các truy vấn SELECT và INSERT.

- Tính đồng thời: Làm thế nào để thỏa mãn tốt nhất yêu cầu tính đồng thời trên tải có sẵn. Nếu ứng dụng chỉ cần chèn và đọc đồng thời, MyISAM là một lựa chọn tốt.

Nếu ứng dụng cần trộn các phép toán để thực thi đồng thời mà không giao thoa với

- Sao lưu dữ liệu (backup): Sự cần thiết của sao lưu dữ liệu có thể cũng ảnh hưởng tới lựa chọn bảng. Nếu máy chủ thỉnh thoảng tắt máy để sao lưu dữ liệu, các

storage có thể đáp ứng dễ dàng. Tuy nhiên, nếu ứng dụng cần phải sao lưu dữ liệu trực

tuyến thì cần chọn lọc kĩ hơn.

- Khôi phục dữ liệu sau đổ vỡ: Nếu ứng dụng có nhiều dữ liệu và thực sự quan

tâm tới thời gian khôi phục dữ liệu sau một đổ vỡ. Các bảng MyISAM thường hay bị gián đoạn và mất nhiều thời gian khôi phục hơn các bảng InnoDB. Đó là lí do mà rất

nhiều người sử dụng InnoDB thay cho MyISAM mặc dù không thực sự cần giao tác.

- Các chức năng đặc biệt: Một số ứng dụng cần có một số chức năng hoặc những

tối ưu hóa đặc biệt mà chỉ có một vài storage engine cung cấp. Ví dụ, nếu ứng dụng

phụ thuộc vào tối ưu hóa chỉ mục cụm thì lựa chọn chỉ có thể là InnoDB hoặc

solidDB. Chỉ có MyISAM hỗ trợ tìm kiếm full – text bên trong MySQL.

Đối với các ứng dụng chuyên biệt hơn, có thể tìm kiếm các storage engine do bên thứ ba phát triển. Nếu ứng dụng liên quan các ứng dụng CSDL chuyên sâu như kho dữ

liệu, phân tích dữ liệu trực tuyến hãy thử các storage engine sử dụng kĩ thuật lưu trữ hướng dòng như InfoBright; Nếu ứng dụng cần xử lí tìm kiếm nhanh chỉ dựa vào cặp

giá trị - khóa thì các lựa chọn storage engine hỗ trợ NoSQL là không thể bỏ qua; hay

các ứng dụng xử lí dữ liệu đa phương tiện (BLOB) có thể tìm hiểu thêm về PBMS.

Nếu một storage engine thỏa mãn được nhiều điều kiện, cần thỏa hiệp hoặc tìm một giải pháp thiết kế thông minh nhất. Và nếu các storage engine đã có không thể đáp ứng được những nhu cầu của ứng dụng. Trong trường hợp đó, có thể tự xây dựng

storage engine riêng phù hợp nhất.

Một phần của tài liệu Nghiên cứu phương pháp xây dựng Storage Engine cho hệ quản trị cơ sở dữ liệu MySQL (Trang 50 - 51)