DANH MỤC: UnCategorized

Bài 3: Các dạng storage engine trong MySql


Tiếp tục với series học mysql database hôm nay chúng ta sẽ cùng tìm hiểu về các loại storage engine trong MySql.

1, Storage engine là gì?

-Storage engine ở đây thực chất là các mà MySql lưu trữ dữ liệu trên bộ nhớ(cụ thể là ổ cứng). MySql lưu trữ mỗi một database dưới dạng một thư mục trong thư mục data. Và khi chúng ta tạo mỗi một table thì khi đó mySql sẽ tạo ra một file có tên trùng với tên table đó và có đuôi file định dạng .frm ở trong thư mục của database, còn việc định nghĩa và quản lý bảng là nhiệm vụ của mysql.

-Nếu bạn chọn các storage engine khác nhau thì nó sẽ có các cách lưu trữ và đánh index khác nhau.

2, Một số storage engine trong MySql.

MyIsam engine

-Loại store engine này có các đặc điểm nổi bật như: hỗ trợ Full Text Index, spatial Functions (GIS), không hỗ trợ Transactions, không hỗ trợ row-level lock,...

-Tính năng của nó như sau: MyISAM engine có khả năng tự sửa chữa và phục hồi dữ liệu sau khi hệ thống crashed, dùng command check table / repair table để kiểm tra lỗi và phục hồi sau khi bị lỗi, có thể đánh chỉ mục full-text, hỗ trợ tìm kiếm full-text-search và đặc biệt MyISAM engine không ghi dữ liệu ngay vào ổ đĩa cứng, mà ghi vào 1 buffer trên memory (và chỉ ghi vào đĩa cứng sau 1 khoảng thời gian), do đó tăng tốc độ ghi. Nhưng,nếu server bị crash, ta cần phải phục hồi dữ liệu bị hư hỏng bằng myisamchk hơn nữa vì MyISAM hỗ trợ nén dữ liệu và tăng tốc độ đọc dữ liệu nên dung lượng file và tốc độ truy vấn đặt hiệu suất rất cao.

InnoDB engine

-Đây là một loại storage engine được nhất xét là phức tạp nhất trong MySql, tuy nhiên nó cũng tồn tại một số ưu điểm như: hỗ trợ transactions,.. Và đặc biệt nó hỗ trợ phục hồi và sửa chữa rất tốt.

-InnoDB hỗ trợ MVCC để cài thiện việc truy cập đồng thời và hỗ trợ thủ thuật next-key locking. Hơn nữa InnoDB được xây dựng dựa trên clustered index, do đó việc tìm kiếm theo primary key có hiệu năng rất cao . Nhưng nó lại không hỗ trợ việc sắp xếp index nên việc thay đổi cấu trúc bảng sẽ dẫn tới toàn bộ dữ liệu phải được đánh chỉ mục từ đầu.

Archive engine

-Đây có lẽ là một loại storage engine củ chuối nhất vì nó chỉ hỗ trợ select và insert thôi mà lại còn không hỗ trợ đánh chỉ mục(index). Ngoài ra thì nó chẳng có một cái gì gọi là nổi bật cả.

CSV engine

- Loại storage engine này cũng củ chuối chẳng kém Archive engine vì nó coi file CSV như một bảng nên nó sẽ không đánh chỉ mục được...

MariaBD

-Loại storage enigne này được thiết kế ra với mục đích thay thế MyISAM, nên đương nhiên là nó sẽ có đầy đủ các chức năng của MyISAM và hiệu năng phải tốt hơn MyISAM rồi...

3, Lời kết.

-Phía trên mình đã giới thiệu với các bạn về một số Storage engine trong MySql rồi và cũng qua đó các bạn cũng nên có một sự lựa chọn đúng đắn khi thiết kế database.

 

 

Nguồn: Toidicode.com

Thông tin tác giả

Vũ Thanh Tài

Vũ Thanh Tài

Biển học vô biên, quay đầu là dại!

Hãy tham gia group facebook để cùng giao lưu chia sẻ kiến thức! Tham Gia