Kiến trúc MySQL cơ bản là gì?

Nhiều người kiểm tra biết cách viết các truy vấn SQL và cách lấy dữ liệu từ các bảng. Nhưng chỉ một số ít hiểu được kiến ​​trúc bên trong và cách MySQL tương tác với các công cụ lưu trữ. Blog này thảo luận về kiến ​​trúc MySQL, các lớp khác nhau và hành trình của câu lệnh SQL trong dữ liệu MySQL

Kiến trúc MySQL về cơ bản được chia thành ba lớp có thể được xác định bởi,

1. Lớp ứng dụng
2. Lớp logic
3. Lớp vật lý

1. Lớp ứng dụng

Lớp ứng dụng là nơi máy khách và người dùng tương tác với MySQL RDBMS. Tất cả các dịch vụ cần thiết để xử lý kết nối, xác thực, bảo mật đều có ở đây. Có ba thành phần chính trong lớp này là Quản trị viên, Khách hàng, Người dùng truy vấn như trong hình bên dưới

a. Quản trị viên
Quản trị viên sử dụng các tiện ích và giao diện quản trị khác nhau như mysqladmin để thực hiện các tác vụ như tắt máy chủ và tạo hoặc xóa cơ sở dữ liệu, mysqldump để sao lưu cơ sở dữ liệu hoặc sao chép cơ sở dữ liệu sang máy chủ khác.
b. Máy khách
Máy khách giao tiếp với MySQL thông qua nhiều giao diện và tiện ích khác nhau như API của MySQL. API MySQL gửi truy vấn đến máy chủ dưới dạng một loạt mã thông báo.
c. Người dùng truy vấn
Người dùng truy vấn tương tác với MySQL RDBMS thông qua giao diện truy vấn là mysql.

2. Lớp logic

Lớp logic lấy dữ liệu từ Lớp ứng dụng. Mọi chức năng được cung cấp trên các công cụ lưu trữ đều tồn tại ở cấp độ này như các thủ tục, trình kích hoạt và chế độ xem được lưu trữ. Nó được chia thành các hệ thống con như Bộ xử lý truy vấn, Quản lý giao dịch, Quản lý khôi phục, Quản lý lưu trữ. Các hệ thống con này hoạt động cùng nhau để xử lý các yêu cầu được gửi đến máy chủ cơ sở dữ liệu MySQL. Đầu ra của một trong các hệ thống con trên trở thành đầu vào cho một hệ thống con khác. Dưới đây là sơ đồ quan niệm cơ bản

Bộ xử lý truy vấn – Bây giờ, hãy thử hiểu việc thực thi truy vấn bằng một ví dụ đơn giản

SELECT * FROM Manufacture.Orders WHERE order_id = 1009;

Chọn * từ Sản xuất. Đơn đặt hàng trong đó order_id = 1009;

Trong truy vấn này, chúng tôi muốn biết chi tiết đơn đặt hàng cho id đơn hàng 1009.
a. Khi nhận được yêu cầu truy vấn từ một máy khách trong lớp ứng dụng, chúng tôi sẽ thực hiện truy vấn này bằng phiên máy khách MySQL [MySQL Client là một tiện ích để thực thi tất cả các lệnh MySQL và trả về một đầu ra]. Đó là trách nhiệm của thành phần đầu tiên trong Bộ xử lý truy vấn i. e Trình biên dịch trước DML [Ngôn ngữ thao tác dữ liệu] được nhúng để trích xuất các câu lệnh SQL có liên quan được nhúng trong lệnh API máy khách hoặc để dịch các lệnh máy khách thành các câu lệnh SQL tương ứng.
b. Khi một phiên máy khách được thiết lập, một “MySQL THREAD” được tạo trong MySQL để xử lý tất cả các phiên và thực thi lệnh.
c. Truy vấn được gửi tới máy chủ MySQL, đây là quy trình “mysqld” chạy trên máy chủ từ xa hoặc cục bộ. “mysqld” là chương trình daemon MySQL Server chạy ở chế độ nền và quản lý các yêu cầu đến và đi liên quan đến cơ sở dữ liệu từ máy khách. mysqld là một quy trình đa luồng cho phép kết nối với nhiều phiên, lắng nghe tất cả các kết nối và quản lý phiên bản MySQL.
d. Sau khi nhập các quy trình máy chủ này, truy vấn được kiểm tra dựa trên danh sách các CHỌN đã thực thi trước đó được duy trì bởi công cụ MySQL DBMS trong một vùng bộ nhớ được gọi là “QUERY CACHE”. Nếu cùng một truy vấn được thực hiện sớm, tập hợp kết quả sẽ được lưu trữ trong Bộ đệm truy vấn. Điều này giúp MySQL không phải thực hiện bất kỳ công việc phân tích cú pháp, tiền xử lý và truy xuất dữ liệu nào từ đĩa hoặc bộ nhớ dẫn đến kết quả đầu ra nhanh.
e. Nếu truy vấn chính xác tương tự không có trong QUERY CACHE, MySQL sẽ chuyển sang thành phần tiếp theo i. e “PARSER” sẽ tạo cấu trúc cây phân tích cú pháp dựa trên truy vấn để các thành phần khác có thể dễ dàng hiểu nó.
f. Khi cấu trúc cây phân tích cú pháp đã sẵn sàng, Bộ tiền xử lý truy vấn sẽ kiểm tra cú pháp SQL và kiểm tra ngữ nghĩa của truy vấn MySQL để xác định xem truy vấn có hợp lệ không.
g. Sau khi truy vấn MySQL được coi là hợp lệ, trình quản lý tích hợp bảo mật chịu trách nhiệm kiểm tra CẤP CẤP của người dùng trên các đối tượng họ muốn truy cập thông qua truy vấn. Ví dụ: chúng tôi muốn truy xuất dữ liệu từ bảng 'Đơn hàng' của cơ sở dữ liệu 'Sản xuất'.
h. Sau khi xác định quyền và quyền truy cập phù hợp, MySQL sẽ đưa truy vấn đến thành phần quan trọng nhất mà tôi. e “TỐI ƯU HÓA CÂU HỎI”. Đây là nơi mà MySQL sẽ quyết định kế hoạch thực hiện để truy cập và lấy dữ liệu nhanh nhất có thể. Trình tối ưu hóa truy vấn chịu trách nhiệm kiểm tra chỉ mục nào tồn tại trên bảng đã chỉ định và nếu có tồn tại liệu nó có thể sử dụng chỉ mục để truy xuất dữ liệu nhanh hơn không. Một chỉ mục ở đây trên cột ‘order_id’ của bảng ‘Orders’ sẽ giúp lớp công cụ lưu trữ định vị và truy xuất dữ liệu nhanh hơn. Sau khi được xác nhận, MySQL sẽ tạo một “KẾ HOẠCH THỰC HIỆN” và chuyển kế hoạch đó sang lớp “Công cụ lưu trữ” [mà tôi sẽ thảo luận trong các đoạn tiếp theo].

Quản lý giao dịch – Tiếp theo là Quản lý giao dịch chịu trách nhiệm đảm bảo rằng giao dịch được ghi lại và thực hiện tự động. Nó làm như vậy thông qua sự trợ giúp của trình quản lý nhật ký và trình quản lý kiểm soát tương tranh. Nó cũng chịu trách nhiệm đưa ra các lệnh SQL CAM KẾT và ROLLBACK

Quản lý khôi phục – Tại đây, Trình quản lý nhật ký ghi lại mọi hoạt động được thực hiện trong cơ sở dữ liệu và lưu trữ nhật ký hoạt động dưới dạng Lệnh MySQL. Trong trường hợp hệ thống gặp sự cố, việc thực thi các lệnh này sẽ đưa cơ sở dữ liệu trở lại giai đoạn ổn định cuối cùng. Trình quản lý khôi phục chịu trách nhiệm khôi phục cơ sở dữ liệu về trạng thái ổn định cuối cùng của nó. Nó làm như vậy bằng cách sử dụng nhật ký cho cơ sở dữ liệu, được lấy từ trình quản lý bộ đệm và thực hiện từng thao tác trong nhật ký. Vì trình quản lý nhật ký ghi lại tất cả các hoạt động được thực hiện trên cơ sở dữ liệu [từ khi bắt đầu vòng đời của cơ sở dữ liệu], nên việc thực thi từng lệnh trong tệp nhật ký sẽ khôi phục cơ sở dữ liệu về trạng thái ổn định cuối cùng của nó

Quản lý lưu trữ – Quản lý lưu trữ có trình quản lý bộ đệm phân bổ tài nguyên bộ nhớ. Nó chấp nhận yêu cầu từ công cụ thực thi, yêu cầu chi tiết từ trình quản lý bộ đệm, nhận tham chiếu đến dữ liệu với bộ nhớ từ trình quản lý bộ đệm. Trả lại dữ liệu này cho lớp trên

3. lớp vật lý

Lớp thứ ba là Lớp vật lý chứa các công cụ lưu trữ. Họ chịu trách nhiệm lưu trữ và truy xuất tất cả dữ liệu được lưu trữ trong MySQL. Lớp vật lý của MySQL hơi khác so với các RDBMS khác. Ở đây, hệ thống vật lý bao gồm kiến ​​trúc Công cụ lưu trữ có thể cắm cho phép các công cụ lưu trữ được tải vào và tải xuống từ máy chủ MySQL đang chạy

Các công cụ khác nhau có sẵn là MyISAM, InnoDB, CSV, Archive, v.v. Bắt đầu từ MySQL 5. 5. 5, công cụ lưu trữ mặc định cho các bảng mới là InnoDB [Câu lệnh CREATE TABLE trong MySQL tạo các bảng InnoDB theo mặc định]. Mỗi công cụ lưu trữ có những đặc điểm khác nhau và dựa trên yêu cầu của ứng dụng mà chúng ta có thể chọn một công cụ lưu trữ phù hợp. Khi tạo bảng, bạn có thể chọn công cụ lưu trữ sẽ sử dụng. Ví dụ: nếu chúng tôi có dữ liệu CSV chỉ chấp nhận văn bản được phân tách bằng dấu phẩy, bạn có thể sử dụng công cụ lưu trữ CSV lưu trữ dữ liệu trong tệp văn bản bằng định dạng giá trị được phân tách bằng dấu phẩy. Tương tự, bạn có thể sử dụng công cụ lưu trữ Lưu trữ để lưu trữ lượng lớn dữ liệu mà không cần lập chỉ mục

MySQL lưu trữ từng cơ sở dữ liệu [còn được gọi là lược đồ] dưới dạng thư mục con của thư mục dữ liệu của nó trong hệ thống tệp cơ bản. Mỗi cơ sở dữ liệu có một thư mục dữ liệu tương ứng. Khi bạn tạo một bảng, MySQL lưu định nghĩa bảng trong một. tệp frm có cùng tên với bảng. Do đó, khi bạn tạo một bảng có tên là Đơn hàng, MySQL sẽ lưu định nghĩa bảng trong Đơn hàng. frm. Này. Các tệp frm không lưu trữ dữ liệu mà chỉ có định dạng chứa mô tả cấu trúc bảng

Tôi hy vọng điều này cung cấp một cái nhìn tổng quan về Kiến trúc MySQL. Vui lòng theo dõi loạt blog khác của tôi về thực thi truy vấn SQL, mô hình hóa cơ sở dữ liệu và Liquibase

Nếu bạn là một công ty khởi nghiệp đang gặp khó khăn trong việc thuê các kỹ sư QA kỹ thuật, hãy tìm hiểu thêm về Dịch vụ Qxf2

Indira Nellutla

Tôi là một kỹ sư với khoảng 10 năm kinh nghiệm trong lĩnh vực phát triển và kiểm thử phần mềm. Trước khi gia nhập Qxf2, tôi đã làm việc với các công ty danh tiếng như Dell và Infosys. Họ đã giúp tôi có được kinh nghiệm tốt trong lĩnh vực sản xuất và chăm sóc sức khỏe. Sự nghiệp QA của tôi bắt đầu tại Dell. Tôi đã tiếp xúc với nhiều công cụ, quy trình và phương pháp thử nghiệm khác nhau, có cơ hội làm việc trên nhiều nền tảng khác nhau như JMS Hermes, SOAP UI, tích hợp dữ liệu, hàng đợi, v.v. Tôi chọn Qxf2 vì nó cho phép làm việc từ xa. Sở thích của tôi là làm vườn rau theo phương pháp hữu cơ, nghe nhạc và đọc sách

Kiến trúc của MySQL là gì?

Kiến trúc công cụ lưu trữ có thể cắm của MySQL cho phép chuyên gia cơ sở dữ liệu chọn một công cụ lưu trữ chuyên dụng cho nhu cầu ứng dụng cụ thể trong khi được bảo vệ hoàn toàn khỏi nhu cầu quản lý bất kỳ yêu cầu mã hóa ứng dụng cụ thể nào.

Những điều cơ bản của MySQL là gì?

MySQL là hệ thống quản lý cơ sở dữ liệu quan hệ [RDBMS] do Oracle phát triển dựa trên ngôn ngữ truy vấn có cấu trúc [SQL] . Cơ sở dữ liệu là một tập hợp dữ liệu có cấu trúc. Nó có thể là bất cứ thứ gì, từ danh sách mua sắm đơn giản đến thư viện ảnh hoặc nơi chứa lượng thông tin khổng lồ trong mạng công ty.

MySQL DBMS sử dụng kiểu kiến ​​trúc nào?

MYSQL tuân theo Kiến trúc Máy khách-Máy chủ . Nó được thiết kế sao cho người dùng cuối là Khách hàng có thể truy cập tài nguyên từ Máy tính là máy chủ bằng các dịch vụ mạng khác nhau.

Kiến trúc InnoDB là gì?

InnoDB là công cụ lưu trữ nhiều phiên bản . nó giữ thông tin về các phiên bản cũ của các hàng đã thay đổi, để hỗ trợ các tính năng giao dịch như đồng thời và khôi phục. Thông tin này được lưu trữ trong không gian bảng trong cấu trúc dữ liệu được gọi là phân đoạn khôi phục [sau cấu trúc dữ liệu tương tự trong Oracle].

Chủ Đề