MySQL Query Cache Phần I / II

2022-03-20 14:49:20

Giới thiệu về MySQL Query Cache: Phần I

Sáng hôm nay, tôi đang theo dõi cơ sở dữ liệu MySQL Production.

Tôi đã tìm ra danh sách các phiên đang chạy với các truy vấn SQL khác nhau. Tôi đã tạo một số bảng chính và bảng chính trong MySQL để lưu trữ cài đặt và dữ liệu cấu hình cho một trong các Ứng dụng dành cho thiết bị di động của chúng tôi.

Vì các bảng này dành cho mục đích cấu hình nên ứng dụng không thường xuyên cập nhật.

Nhưng hôm nay, tôi lo lắng vì bảng cấu hình này sử dụng nhiều I / O CPU hơn. Tôi đã tạo tất cả các bảng này trong công cụ Lưu trữ MySQL InnoDB.

Tôi không thể lưu trữ tất cả dữ liệu này trong công cụ Bộ nhớ vì tất cả đây đều là dữ liệu chính cho Ứng dụng của chúng tôi.

Vì vậy, tôi đã tìm một giải pháp để truy xuất nhanh hơn và nhận thấy rằng MySQL có một tùy chọn tốt được gọi là Bộ đệm truy vấn.

Trong bài đăng này, tôi đang chia sẻ lý thuyết về MySQL Query Cache và tôi sẽ chia sẻ phần thứ hai của cấu hình thực tế của MySQL Query Cache vào ngày mai.

MySQL Query Cache là gì?
Sắp xếp & Đơn giản, MySQL Query Cache lưu trữ một số câu lệnh SELECT thường xuyên với các kết quả tương ứng của nó.

Khi dữ liệu bảng không thay đổi thường xuyên và máy chủ nhận được nhiều truy vấn giống hệt nhau thì chỉ có Bộ đệm truy vấn trả về dữ liệu từ vùng Bộ đệm.

Bất cứ khi nào bảng được sửa đổi với dữ liệu, thì bộ nhớ cache của Truy vấn sẽ được xóa.

Tôi ngạc nhiên bởi tính năng này của MySQL giúp cải thiện hiệu suất truy vấn của bạn trong một số trường hợp.

Khi bạn kích hoạt bất kỳ câu lệnh chọn nào và nếu nó có sẵn trong bộ nhớ cache, nó sẽ trở lại từ đó và không yêu cầu phân tích cú pháp và tìm nạp từ đĩa để cải thiện hiệu suất truy vấn.

Vui lòng không cho rằng điều này sẽ hoạt động trong mọi trường hợp vì điều này cũng phụ thuộc vào tải bộ nhớ và máy chủ của bạn.

Bạn cũng có thể đặt kích thước cho Bộ nhớ đệm truy vấn nhưng hãy đảm bảo rằng nó không được cao hơn nếu không sẽ tạo chi phí bộ nhớ cho toàn bộ máy chủ.

Một số điều kiện trong đó Bộ đệm truy vấn sẽ không hoạt động:

  • Không sử dụng khi nhiều máy chủ truy cập vào một truy vấn.
  • Không sử dụng với Thủ tục được lưu trữ và UDF.
  • Không sử dụng với bất kỳ loại Biến nào.
  • Không sử dụng với bất kỳ bảng cơ sở dữ liệu mặc định nào như MySQL, INFORMATION_SCHEMA.
  • Không sử dụng với bảng phân vùng.
  • Không sử dụng với bảng Tạm thời.
  • Không sử dụng với các câu lệnh soạn sẵn.

Please visit MySQL Query Cache Phần II for the configuration of Query Cache:

Xem thêm:


Chia sẻ: