Công cụ lưu trữ phổ biến nhất trong MySQL là gì?

MySQL cung cấp nhiều công cụ lưu trữ để lưu trữ dữ liệu của nó, với InnoDB và MyISAM là những công cụ phổ biến nhất. Mỗi công cụ lưu trữ triển khai một bộ tính năng cụ thể hơn cần thiết cho một loại khối lượng công việc và do đó, hoạt động khác với các công cụ khác. Vì dữ liệu được lưu trữ bên trong công cụ lưu trữ nên chúng ta cần hiểu cách hoạt động của công cụ lưu trữ để xác định công cụ sao lưu tốt nhất. Nói chung, các công cụ sao lưu MySQL thực hiện một thao tác đặc biệt để truy xuất dữ liệu nhất quán – khóa bảng hoặc thiết lập mức cô lập giao dịch để đảm bảo dữ liệu đọc không thay đổi

MyISAM/Aria

MyISAM là công cụ lưu trữ mặc định cho các phiên bản MySQL trước 5. 5. 5. Nó dựa trên mã ISAM cũ hơn nhưng có nhiều tiện ích mở rộng hữu ích. Thiếu sót lớn của MyISAM là không có hỗ trợ giao dịch. Aria là một công cụ lưu trữ khác có di sản MyISAM và là công cụ thay thế MyISAM trong tất cả các bản phân phối MariaDB. Sự khác biệt chính là Aria an toàn khi gặp sự cố, trong khi MyISAM thì không. An toàn khi gặp sự cố có nghĩa là bảng Aria có thể phục hồi sau các sự cố không mong muốn theo cách tốt hơn nhiều so với bảng MyISAM có thể. Trong hầu hết các trường hợp, hoạt động sao lưu cho MyISAM và Aria gần như giống hệt nhau

MyISAM sử dụng khóa cấp bảng. Nó lưu trữ các chỉ mục trong một tệp và dữ liệu trong một tệp khác. Các bảng MyISAM thường có kích thước nhỏ gọn hơn trên đĩa khi so sánh với các bảng InnoDB. Với bản chất là khóa cấp bảng và không hỗ trợ giao dịch, cách được đề xuất để sao lưu các bảng MyISAM là lấy khóa đọc toàn cầu bằng cách sử dụng FLUSH TABLE WITH READ LOCK [FTWRL] để tạm thời đặt MySQL ở chế độ chỉ đọc hoặc sử dụng câu lệnh LOCK TABLES một cách rõ ràng. Không có điều đó, các bản sao lưu MyISAM sẽ không nhất quán

InnoDB/XtraDB

InnoDB là công cụ lưu trữ mặc định cho MySQL và MariaDB. Nó cung cấp các tính năng giao dịch tuân thủ ACID tiêu chuẩn, cùng với hỗ trợ khóa ngoại và khóa cấp hàng

XtraDB của Percona là phiên bản nâng cao của công cụ lưu trữ InnoDB cho MySQL và MariaDB. Nó có một số cải tiến giúp nó hoạt động tốt hơn trong một số tình huống nhất định. Nó tương thích ngược với InnoDB, vì vậy nó có thể được sử dụng như một sự thay thế thả vào

Có một số thành phần chính trong InnoDB ảnh hưởng trực tiếp đến hành vi của hoạt động sao lưu và khôi phục

  • giao dịch
  • Phục hồi sự cố
  • Kiểm soát đồng thời đa chuyển đổi [MVCC]

giao dịch

InnoDB thực hiện giao dịch. Một giao dịch sẽ không bao giờ được hoàn thành trừ khi từng hoạt động riêng lẻ trong nhóm thành công [CAM KẾT]. Nếu bất kỳ thao tác nào trong giao dịch không thành công, toàn bộ giao dịch sẽ không thành công và mọi thay đổi sẽ bị hủy [ROLLBACK]

Ví dụ sau đây cho thấy một giao dịch trong MySQL [giả sử autocommit bị tắt]

BEGIN;
UPDATE account.saving SET balance = [balance - 10] WHERE id = 2;
UPDATE account.current SET balance = [balance + 10] WHERE id = 2;
COMMIT;

Một giao dịch bắt đầu bằng BEGIN và kết thúc bằng COMMIT hoặc ROLLBACK. Trong ví dụ trên, nếu máy chủ MySQL gặp sự cố sau khi hoàn thành câu lệnh CẬP NHẬT đầu tiên [dòng 2], bản cập nhật đó sẽ được khôi phục và giá trị số dư sẽ không thay đổi đối với giao dịch này. Khả năng khôi phục rất quan trọng khi thực hiện khôi phục sự cố, như được giải thích trong phần tiếp theo

Phục hồi sự cố

InnoDB duy trì nhật ký giao dịch, còn được gọi là nhật ký làm lại. Nhật ký làm lại được thể hiện dưới dạng một tập hợp các tệp, thường được đặt tên là ib_logfile0 và ib_logfile1. Nhật ký chứa bản ghi mọi thay đổi đối với dữ liệu InnoDB. Khi InnoDB khởi động, nó sẽ kiểm tra các tệp dữ liệu và nhật ký giao dịch, đồng thời thực hiện hai bước

  1. Áp dụng các mục nhật ký giao dịch đã cam kết cho các tệp dữ liệu
  2. Thực hiện thao tác hoàn tác [rollback] đối với bất kỳ giao dịch nào đã sửa đổi dữ liệu nhưng không cam kết

Việc khôi phục được thực hiện bởi một luồng nền, được thực hiện song song với các giao dịch từ các kết nối mới. Cho đến khi thao tác khôi phục hoàn tất, các kết nối mới có thể gặp xung đột khóa với các giao dịch đã khôi phục. Trong hầu hết các trường hợp, ngay cả khi máy chủ MySQL bị tắt đột ngột khi đang hoạt động nặng, quá trình khôi phục sẽ diễn ra tự động. DBA không cần thực hiện hành động nào

Percona Xtrabackup sử dụng chức năng khôi phục sự cố của InnoDB để chuẩn bị sao lưu nội bộ không nhất quán [bản sao nhị phân của thư mục dữ liệu MySQL] thành cơ sở dữ liệu nhất quán và có thể sử dụng lại

MVCC

InnoDB là một công cụ lưu trữ kiểm soát đồng thời đa phiên bản [MVCC], có nghĩa là nhiều phiên bản của một hàng có thể tồn tại cùng một lúc. Do tính chất này, không giống như MyISAM, InnoDB không yêu cầu khóa đọc toàn cầu để đọc nhất quán. Nó sử dụng thành phần giao dịch tuân thủ ACID được gọi là cách ly. Cô lập là chữ “i” trong từ viết tắt ACID – mức cô lập xác định khả năng đọc/ghi dữ liệu của một giao dịch được truy cập bởi các giao dịch khác

Để có được ảnh chụp nhanh nhất quán của các bảng InnoDB, người ta chỉ cần bắt đầu một giao dịch với mức cô lập REPEATABLE READ. Trong REPEATABLE READ, chế độ xem đã đọc được tạo khi bắt đầu giao dịch và chế độ xem đã đọc này được giữ mở trong suốt thời gian giao dịch. Ví dụ: nếu bạn thực hiện một câu lệnh CHỌN lúc 6 giờ sáng và quay lại giao dịch mở lúc 6 giờ chiều, khi bạn chạy cùng một câu lệnh CHỌN, thì bạn sẽ thấy chính xác tập hợp kết quả mà bạn đã thấy lúc 6 giờ sáng. Đây là một phần của khả năng MVCC và nó được thực hiện bằng cách sử dụng phiên bản hàng và thông tin UNDO

Sao lưu logic như mysqldump sử dụng phương pháp này để tạo bản sao lưu nhất quán cho InnoDB mà không cần khóa bảng rõ ràng có thể khiến máy chủ MySQL ở chế độ chỉ đọc

KỈ NIỆM

Công cụ lưu trữ BỘ NHỚ [trước đây gọi là HEAP] tạo các bảng có mục đích đặc biệt với nội dung được lưu trữ trong bộ nhớ. Vì dữ liệu dễ bị hỏng, sự cố phần cứng hoặc mất điện nên chỉ sử dụng các bảng này làm vùng làm việc tạm thời hoặc bộ nhớ đệm chỉ đọc cho dữ liệu được lấy từ các bảng khác

Do tính chất tạm thời của dữ liệu từ các bảng BỘ NHỚ [dữ liệu không được lưu vào đĩa], chỉ sao lưu logic mới có khả năng sao lưu các bảng này. Không thể sao lưu ở định dạng vật lý

Đó là nội dung của ngày hôm nay, nhưng bạn có thể đọc thêm về sao lưu trong sách trắng của chúng tôi – Hướng dẫn DevOps về sao lưu cơ sở dữ liệu cho MySQL và MariaDB

Tải xuống sách trắng

Hướng dẫn DevOps về sao lưu cơ sở dữ liệu cho MySQL và MariaDB

Sách trắng này thảo luận về hai tiện ích sao lưu phổ biến nhất hiện có cho MySQL và MariaDB, đó là mysqldump và Percona XtraBackup. Nó tiếp tục đề cập đến các chủ đề như cách các tính năng cơ sở dữ liệu như ghi nhật ký nhị phân và sao chép có thể được tận dụng trong các chiến lược sao lưu. Và nó cung cấp các phương pháp hay nhất có thể được áp dụng cho các cấu trúc liên kết có tính sẵn sàng cao để sao lưu cơ sở dữ liệu đáng tin cậy, an toàn và nhất quán

Công cụ lưu trữ nào tốt nhất trong MySQL?

Mục đích chung .
InnoDB là một công cụ lưu trữ giao dịch chung tốt và từ MariaDB 10. 2, sự lựa chọn tốt nhất trong hầu hết các trường hợp. .
Aria, cải tiến hiện đại hơn của MariaDB trên MyISAM, có dung lượng nhỏ và cho phép dễ dàng sao chép giữa các hệ thống
MyISAM có dung lượng nhỏ và cho phép dễ dàng sao chép giữa các hệ thống

Các công cụ lưu trữ phổ biến nhất cho MySQL là gì?

Có hai loại công cụ lưu trữ trong MySQL. giao dịch và không giao dịch . Đối với MySQL 5. 5 trở lên, công cụ lưu trữ mặc định là InnoDB. Công cụ lưu trữ mặc định cho MySQL trước phiên bản 5. 5 là MyISAM.

Công cụ nào được sử dụng trong MySQL?

Giới thiệu về công cụ cơ sở dữ liệu MySQL . MyISAM là công cụ mặc định cho MySQL cho các phiên bản trước 5. 5

Công cụ lưu trữ trong MySQL ở đâu?

Phát hành câu lệnh SHOW ENGINES để xem các công cụ lưu trữ MySQL có sẵn . Tìm MẶC ĐỊNH trong cột HỖ TRỢ. mysql> HIỂN THỊ ĐỘNG CƠ; .

Chủ Đề