mysql Storage Engine
mysql Storage Engine

MySQL Storage Engine – Khái niệm

MySQL Storage Engine (kiểu lưu trữ Database), Trước khi tạo một Database trong MySQL, chúng ta sẽ tham khảo các kiểu lưu trữ Database thường được sử dụng trong MySQL nhé!

MySQL Storage Engine là gì?

MySQL Storage Engine (kiểu lưu trữ Database) có thể hiểu đơn giản là khi tạo Database thì MySQL cung cấp những kiểu lưu trữ khác nhau giúp chúng ta tối ưu hóa tốc độ truy xuất dữ liệu hoặc dùng trong mục đích nào đó mà chúng ta muốn dựa trên tính năng của chúng.

Kiểu lưu trữ nào thường được sử dụng nhiều nhất?

Tùy vào mục đích sử dụng mà chọn kiểu lưu trữ, nhưng với những hệ thống lớn thì thường sử dụng InnoDB.

Dưới đây là các kiểu lưu trữ các bạn có thể tham khảo

1. MyISAM

MyISAM là mở rộng của kiểu lưu trữ ISAM cũ. Các bảng MyISAM được tối ưu hóa cho nén và tốc độ. Các bảng MyISAM cũng có thể di chuyển giữa các nền tảng và hệ điều hành.

Kích thước của bảng MyISAM có thể lên đến 256TB, rất lớn. Ngoài ra, các bảng MyISAM có thể được nén vào các bảng chỉ đọc để tiết kiệm không gian. Khi khởi động, MySQL kiểm tra bảng MyISAM có hư hỏng hay không và thậm chí tự sửa chữa chúng trong trường hợp lỗi. Lưu trữ cách này không an toàn lắm.

Trước phiên bản 5.5 của MySQL, MyISAM là kiểu lưu trữ mặc định khi bạn tạo một bảng mà không xác định rõ ràng kiểu lưu trữ. Từ phiên bản 5.5, MySQL sử dụng InnoDB làm kiểu lưu trữ mặc định.

2. InnoDB

Các bảng InnoDB hỗ trợ đầy đủ ACID và Transactions. Chúng cũng tối ưu cho hiệu năng. Bảng InnoDB hỗ trợ khóa ngoại, commit, rollback, roll-forward. Kích thước của một bảng InnoDB có thể lên tới 64TB.

Giống như MyISAM, các bảng InnoDB có thể di động giữa các nền tảng và hệ điều hành khác nhau. MySQL cũng kiểm tra và sửa chữa các bảng InnoDB, nếu cần, khi khởi động.

3. MERGE

Một bảng MERGE là một bảng ảo kết hợp nhiều bảng MyISAM có cấu trúc tương tự thành một bảng. Kiểu lưu trữ MERGE còn được gọi là kiểu MRG_MyISAM. Bảng MERGE không có chỉ mục riêng, nó sử dụng chỉ mục của các thành phần trong bảng.

Sử dụng bảng MERGE, bạn có thể tăng tốc hiệu suất khi JOIN nhiều bảng. MySQL chỉ cho phép bạn thực hiện các thao tác SELECT, DELETE, UPDATE và INSERT trên các bảng MERGE. Nếu bạn sử dụng lệnh DROP TABLE trên bảng MERGE, chỉ có thông số MERGE được loại bỏ. Các bảng bên dưới sẽ không bị ảnh hưởng.

4. Memory

Các bảng Memory được lưu trữ trong bộ nhớ và sử dụng hash indexes để chúng nhanh hơn các bảng MyISAM. Thời gian tồn tại của dữ liệu của các bảng Memory phụ thuộc vào thời gian hoạt động của máy chủ cơ sở dữ liệu. Kiểu lưu trữ Memory trước đây được gọi là HEAP.

5. Archive

Archive cho phép bạn lưu trữ một số lượng lớn các record thành một định dạng nén để tiết kiệm không gian đĩa. Kiểu lưu trữ sẽ nén một record khi nó được inserted và giải nén nó bằng cách sử dụng thư viện zlib khi nó được đọc.

Archive chỉ cho phép câu lệnh INSERT và SELECT. Các bảng ARCHIVE không hỗ trợ indexes, do đó cần phải quét hết bảng trước khi lấy một record.

6. CSV

Kiểu lưu trữ CSV lưu dữ liệu theo định dạng được phân cách bằng dấu phẩy (CSV). Bảng CSV mang lại một cách thuận tiện để di chuyển dữ liệu vào các ứng dụng không phải SQL như file Excel.

Bảng CSV không hỗ trợ loại dữ liệu NULL và khi bạn truy vấn đọc (select) thì nó sẽ quét toàn bộ bảng giống như Archive.

7. FEDERATED

Kiểu lưu trữ FEDERATED cho phép bạn quản lý dữ liệu từ một máy chủ MySQL từ xa mà không sử dụng công nghệ cluster hoặc replication. Bảng liên kết ở local không chứa dữ liệu. Khi bạn truy vấn dữ liệu từ bảng liên kết ở local, dữ liệu sẽ được kéo tự động từ các bảng liên kết từ xa.

8. Lời kết

Thông thường chúng ta hay sử dụng hai loại là MyISAM hoặc InnoDB để xây dựng các ứng dụng. Còn những kiểu lưu trữ khác thì chúng ta sẽ dựa trên mục đích sử dụng mà dùng. Như vậy là chúng ta đã hiểu sơ lược về MySQL Storage Engine (kiểu lưu trữ Database) rồi! Tiếp theo là học cách tạo Database đầu tiên sử dụng MySQLi và PDO nhé! Lộ trình học PHP – Tổng hợp PHP – Căn bản – Nâng cao

 

Nguồn: phpcanban.com

MySQL Storage Engine (Kiểu lưu trữ Database)
5 (100%) 1 vote

Chia sẻ
Bài trướcKết nối PHP với MySQL Server – PHP+MySQL
Bài tiếp theoTạo Cơ Sở Dữ Liệu MySQL (Create Database)
Mình là Nguyễn Công! Mình bắt đầu kiếm tiền Online từ năm 2017 và nhờ đó mà có thu nhập rất ổn định. Mình chia sẽ những dự án kiếm tiền Online tốt nhất đã được khảo sát và chắt lọc cho các bạn. Hy vọng thông qua những bài viết phân tích đánh giá ICO các bạn sẽ đưa ra quyết định đầu tư thành công!. Chúc các bạn một ngày nhiều niềm vui! Group Facebook: https://goo.gl/CXVpWU Group Telegram: https://goo.gl/7w3c4t

BÌNH LUẬN

Please enter your comment!
Please enter your name here