Dữ liệu được lưu trữ trong MySQL như thế nào?

Bất cứ khi nào quá trình cài đặt cơ sở dữ liệu MySQL hoàn tất, tất cả dữ liệu và siêu dữ liệu liên quan đến cơ sở dữ liệu sẽ được lưu trữ trong một thư mục. Đây là lược đồ cơ sở dữ liệu thực tế với một số giá trị trong đó. Hãy để chúng tôi khám phá thêm về nó.  

Phần mở rộng của tệp như sau.
 

  • frm – Đây là phần mở rộng của tệp chứa lược đồ hoặc định nghĩa của bảng
  • myd – Đây là phần mở rộng của tệp chứa dữ liệu bảng MyISAM
  • myi - Đây là phần mở rộng của tệp chứa các chỉ số bảng MyISAM

Bên trong Máy chủ MySQL 5. 5/data/mysql, một số tệp là *. từ, *. MYD, và *. MYI, 
trong đó dấu hoa thị là tên bảng thực tế. Nếu sử dụng công cụ MyISAM, thư mục dữ liệu sẽ chứa tất cả các tệp trên, ngược lại trong trường hợp của InnoDB, thư mục chứa. tập tin frm.

Các tệp cơ sở dữ liệu này được sử dụng cho mục đích sao lưu để bảo mật lược đồ, dữ liệu và chỉ mục cho một số di chuyển hoặc nâng cấp cơ sở dữ liệu. Các tệp cấu hình cho MySQL cho Windows và Linux là của tôi. ini và tôi. conf tương ứng.  

Đường dẫn cho Windows.  

C:\Program Files\MySQL\MySQL Server 5.5\my.ini 

trong tôi. ini, nếu chúng ta tìm kiếm từ khóa basedir, chúng ta có thể nhận được đường dẫn cài đặt máy chủ MySQL.  

Tương tự nếu search từ khóa datadir ta có thể lấy được đường dẫn của Database root. Ngoài ra, còn có nhiều tệp khác được tạo hoặc sử dụng bởi máy chủ MySQL để thực hiện các hoạt động khác nhau. Một số trong số họ là như sau

MySQL là Hệ thống quản lý cơ sở dữ liệu quan hệ [RDBMS] nguồn mở được sử dụng rộng rãi nhất trên thế giới. Trong toàn bộ vũ trụ cơ sở dữ liệu, nó được DB-Engines, trang web xếp hạng cơ sở dữ liệu uy tín, xếp hạng thứ hai, ngay sau Oracle. Khảo sát nhà phát triển Stack Overflow 2020 đã xếp hạng MySQL là cơ sở dữ liệu phổ biến nhất trong năm đó. Bạn có thể đã biết rằng MySQL phù hợp với bất kỳ ứng dụng nào yêu cầu công cụ SQL giao dịch, bao gồm các ứng dụng quan trọng và các trang web được quản lý nhiều

Đây là điều có thể bạn chưa biết về MySQL. Michael Widenius, đồng tác giả của MySQL, đặt tên phần mềm cho My, con gái của ông. Và bạn có thể nghĩ rằng "của tôi" có nghĩa là cơ sở dữ liệu cá nhân của "bạn"

Sự phổ biến của MySQL đã dẫn đến RDBMS được triển khai rộng rãi. Và, như với bất kỳ cơ sở dữ liệu nào, MySQL cần lưu trữ. Cách tiếp cận thông thường là sử dụng Bộ lưu trữ đính kèm trực tiếp [DAS] với đèn flash NVMe để có độ trễ thấp và hiệu suất ứng dụng cao. Nhưng có những sự cân bằng mà bạn nên biết với cách tiếp cận đó. Một cách tiếp cận hiện đại hơn để lưu trữ có thể mang lại kết quả chi tiêu vốn [CapEx] và chi phí hoạt động [OpEx] tốt hơn

Những hạn chế của việc sử dụng Bộ lưu trữ đính kèm trực tiếp với MySQL là gì?

Thực tế phổ biến là sử dụng DAS với bộ lưu trữ flash NVMe hiệu suất cao trực tiếp cho MySQL tạo ra một số sự đánh đổi đắt giá. Cách tiếp cận này liên kết trực tiếp lưu trữ với điện toán, điều này ngăn khả năng mở rộng độc lập giữa dung lượng điện toán [CPU và bộ nhớ] và dung lượng lưu trữ. Mặc dù hệ thống có thể bắt đầu cân bằng, nhưng thiết lập nhanh chóng trở nên kém hiệu quả vì DAS có thể đạt mức tối đa, khó quản lý ở quy mô lớn [OpEX cao] và thường được dự phòng quá mức [CapEx cao] để theo kịp các nhu cầu kinh doanh không thể đoán trước. Nó cũng có thể dẫn đến dung lượng bị mắc kẹt, silo lưu trữ và sử dụng không đúng mức đèn flash. Không ai trong số đó là lý tưởng cho kinh tế cơ sở hạ tầng

Ví dụ: nếu bạn có bốn phiên bản điện toán MySQL, mỗi phiên bản có DAS riêng, thì hai trong số các phiên bản điện toán có thể sử dụng 10% dung lượng lưu trữ, trong khi hai phiên bản còn lại có thể sử dụng hơn 90%. Trong trường hợp trước, đó là một ví dụ tốn kém về khả năng lưu trữ bị mắc kẹt. Trong trường hợp thứ hai, bộ nhớ trong quá đầy nên sẽ luôn chậm—và bạn sẽ phải thêm một phiên bản điện toán khác chỉ để có thêm dung lượng lưu trữ. DAS mới được thêm vào sau đó sẽ không được sử dụng đúng mức. Nhìn chung, tổng chi phí sở hữu [TCO] sẽ cao hơn mức cần thiết

Làm thế nào để đạt được hiệu suất cao với MySQL

Có thể đạt được hiệu suất lưu trữ và sử dụng tốt hơn cho MySQL. Một cách tiếp cận là áp dụng kiến ​​trúc phân tách bộ lưu trữ khỏi điện toán, chẳng hạn như sử dụng bộ lưu trữ do phần mềm xác định [SDS] để phân tách bộ lưu trữ. Điều này có thể được triển khai dưới dạng nhóm lưu trữ cụm và khi được kết hợp với NVMe®overTCP [NVMe/TCP], có thể mang lại hiệu suất ứng dụng tương đương cho DAS với chi phí thấp hơn [i. e. , tốt hơn] độ trễ cho MySQL. Cách tiếp cận này loại bỏ rất nhiều sự thiếu hiệu quả của mô hình DAS. Ngoài khả năng thay đổi quy mô lưu trữ độc lập khỏi máy tính, các lợi ích còn bao gồm kiến ​​trúc lưu trữ dùng chung để quản lý dễ dàng hơn và tận dụng tài nguyên tốt hơn. Tất cả những lợi ích này có thể có tác động đáng kể đến việc giảm CapEx và OpEx

Lợi ích của việc sử dụng NVMe/TCP với MySQL trong kiến ​​trúc phân tách

Lấy ý tưởng sử dụng phương pháp lưu trữ hiện đại hơn cho MySQL bằng cách sử dụng SDS kết hợp với NVMe/TCP sẽ bổ sung thêm lợi ích cho kiến ​​trúc phân tách. NVMe/TCP là một giao thức lưu trữ đơn giản, phổ biến và hiệu quả cao. Bất kỳ mạng trung tâm dữ liệu hiện đại nào cũng được thiết kế chủ yếu cho mạng TCP/IP. Bất kỳ máy chủ Linux hiện đại nào cũng có trình điều khiển NVMe/TCP tích hợp. NVMe/TCP sử dụng ngăn xếp mạng Linux tiêu chuẩn và Thẻ giao diện mạng [NIC] mà không có bất kỳ sửa đổi nào

Lightbits kết hợp một kiến ​​trúc phân tách với một nhóm lưu trữ flash NVMe/TCP được cung cấp thành các ổ đĩa logic hiển thị cho các phiên bản điện toán dưới dạng một không gian tên NVMe duy nhất. Vì SDS chạy trên các máy chủ Linux tiêu chuẩn, nên nó được tối ưu hóa để mang lại hiệu suất cao và độ trễ thấp nhất quán cho các khối lượng công việc nặng Đầu vào/Đầu ra [I/O] như MySQL. Đó là một giải pháp thay thế hiệu quả cho DAS

  • Tăng hiệu suất ứng dụng—Nhóm bộ nhớ flash, với tính năng giảm dữ liệu nội tuyến, cho phép giảm đáng kể “độ trễ đuôi”, có thể được coi là thời gian cần thiết để hoàn thành các yêu cầu I/O lộn xộn cần nhiều thời gian nhất để hoàn thành
  • Truy cập tiêu chuẩn đơn giản và an toàn—Lightbits cung cấp hỗ trợ đầy đủ cho NVMe over Fabric [NVMe-oF] tiêu chuẩn bằng cách sử dụng các giao thức kết nối NVMe tiêu chuẩn và chức năng Danh sách điều khiển truy cập [ACL]. Bằng cách sử dụng các cơ chế NVMe-oF tiêu chuẩn, quản trị viên lưu trữ có thể thiết lập ACL cho từng ổ đĩa NVMe/TCP do Lightbits xuất. Đổi lại, Lightbits sẽ chỉ cho phép các máy khách được kết nối với NVMe/TCP truy cập vào các khối lượng mà máy khách có quyền truy cập
  • Giảm TCO—kiến trúc phân tách kết hợp với NVMe/TCP giúp chủ sở hữu hệ thống quản lý MySQL có thể nhận ra TCO thấp hơn. Nhu cầu cung cấp quá mức để theo kịp nhu cầu, do đó tạo ra công suất bị mắc kẹt, đã bị loại bỏ. Ngoài ra, chủ sở hữu hệ thống có thể cắt giảm TCO bằng cách chỉ nâng cấp máy chủ lưu trữ hoặc máy chủ ứng dụng khi cần thiết, thay vì khi hết dung lượng DAS. Không cần bó và lãng phí dung lượng lưu trữ hoặc CPU

kết quả điểm chuẩn

Lightbits đã chạy một so sánh giữa MySQL với DAS và MySQL với SDS phân tách của Lightbits. Bước đầu tiên trong nghiên cứu đã tạo điểm chuẩn MySQL bằng cách sử dụng khối lượng công việc dựa trên đám mây tiêu chuẩn trong đó mỗi nút MySQL chứa ổ SSD NVMe trong cấu hình DAS. Một máy được thiết lập dưới dạng Ứng dụng khách căng thẳng chuyên dụng đã chạy khối lượng công việc chuẩn trên mỗi nút điện toán MySQL. Sau đó, các Ứng dụng khách căng thẳng tương tự đã chạy cùng một khối lượng công việc chuẩn trên cùng các nút MySQL, nhưng lần này với các nút MySQL sử dụng bộ lưu trữ phân tách nằm trong máy chủ lưu trữ Lightbits và được truy cập qua NVMe/TCP

Nghiên cứu đặc trưng của Yahoo. Công cụ Điểm chuẩn phục vụ đám mây [YCSB] đang được thực thi trên Máy khách căng thẳng. Trong cả cấu hình DAS và Lightbits, phần mềm đo điểm chuẩn YCSB được định cấu hình để chạy trên cơ sở dữ liệu MySQL có kích thước được tính toán để tiêu thụ ~60% dung lượng có thể sử dụng. Khối lượng công việc YCSB là sự kết hợp của 50% lượt đọc và 50% cập nhật, với kích thước bản ghi 4K sử dụng phân phối thống nhất

Kết quả cho thấy một số khác biệt nổi bật giữa MySQL với DAS và MySQL với Lightbits SDS được phân tách. Trong khi Lightbits và DAS cho thấy “độ trễ trung bình đọc và cập nhật” tương tự nhau, thì trong trường hợp “đọc và cập nhật 99. độ trễ đuôi 9%,” Lightbits thấp hơn 2 lần [i. e. , tốt hơn] so với DAS khi cường độ khối lượng công việc tăng lên. Khi tính năng nén nội tuyến được tăng tốc phần cứng được thêm vào thử nghiệm, Lightbits đã giảm 40% tổng kích thước cơ sở dữ liệu. Độ trễ đuôi giảm thêm 30%

Phần kết luận

MySQL là một RDBMS được sử dụng phổ biến đến mức gần như mọi bộ phận CNTT sẽ phải vật lộn với những thách thức về lưu trữ MySQL. Cách tiếp cận DAS chiếm ưu thế không phải là lý tưởng. Nó không hiệu quả và dẫn đến hiệu suất kém và TCO cao hơn mức có thể với kiến ​​trúc SDS phân tách. Như Lightbits đã trình bày trong nghiên cứu điểm chuẩn của mình, việc tách biệt lưu trữ khỏi điện toán bằng kiến ​​trúc phân tách và kết hợp flash NVMe với TCP/IP cho phép chủ sở hữu hệ thống cải thiện hiệu suất và mức sử dụng lưu trữ

Blog liên quan

  • Cơ sở dữ liệu MySQL tăng cường sử dụng Lightbits giảm hơn 40% cơ sở dữ liệu và 30% độ trễ đuôi
  • Giải thích về lưu trữ NVMe®. Bộ nhớ dùng chung NVMe®, NVMe-OF™, v.v.
  • Lightbits Labs ra mắt giải pháp lưu trữ cụm NVMe/TCP đầu tiên trong ngành

Lưu trữ dữ liệunvmenvme-tcp

Giới thiệu về nhà văn

Carol Platz

Bài viết liên quan

Mở rộng quy mô so với Mở rộng quy mô là gì?

Carol Platz

Sự khác biệt giữa mở rộng quy mô so với mở rộng quy mô là gì? . Mở rộng quy mô có nghĩa là bổ sung thêm

Đọc thêm

NVMe/TCP. Kết nối kiến ​​trúc trung tâm dữ liệu truyền thống và thế hệ tiếp theo

Enrico Signoretti. Nhà phân tích CNTT và Blogger độc lập

Gần đây, tôi đã viết rất nhiều về NVMe/TCP và các công nghệ hỗ trợ trung tâm dữ liệu khác. Tôi đã sử dụng phương pháp…

Dữ liệu thực sự được lưu trữ trong MySQL ở đâu?

Thông thường, MySQL sẽ lưu trữ dữ liệu trong thư mục mặc định của /var/lib/mysql . Tuy nhiên, điều này có thể được thay đổi.

Dữ liệu được lưu trữ trong MySQL ở định dạng nào?

nó sử dụng định dạng hàng có kích thước thay đổi [có thể tiết kiệm bộ nhớ cho varchars], nó được thiết kế tốt hơn [dễ bảo trì hơn].

Làm thế nào dữ liệu được lưu trữ trong cơ sở dữ liệu?

Dữ liệu trong cơ sở dữ liệu được được nhóm thành một chuỗi bản ghi cơ sở dữ liệu . Mỗi bản ghi cơ sở dữ liệu bao gồm các nhóm dữ liệu nhỏ hơn được gọi là phân đoạn. Một phân đoạn là phần dữ liệu nhỏ nhất mà IMS có thể lưu trữ. Lần lượt, các phân đoạn được tạo thành từ một hoặc nhiều trường.

Lưu trữ trong MySQL là gì?

Công cụ lưu trữ là Các thành phần MySQL xử lý các thao tác SQL cho các loại bảng khác nhau . InnoDB là công cụ lưu trữ mặc định và có mục đích chung nhất và Oracle khuyên bạn nên sử dụng nó cho các bảng ngoại trừ các trường hợp sử dụng chuyên biệt. [Câu lệnh CREATE TABLE trong MySQL 8. 0 tạo các bảng InnoDB theo mặc định. ]

Chủ Đề